Come far accedere un utente a un solo database tramite Microsoft SQL Server Studio Express

Richiesta: far accede un utente ad un solo database e non far vedere nessun altro database; l'utente collegandosi da Microsoft Sql Server Studio Express non deve vedere neppure i nomi degli altri database.
Di default quando creo un utente e gli attribuisco i permessi, l'utente vede comunque l'elenco completo dei database presenti sulla macchina.
I passi sotto indicati spiegano come fare questo.

Soluzione: voglio creare un utente Pippo che abbia tutti i permessi sul database CMMS

Per creare l'utente si deve andare in Protezione, Account di accesso e poi cliccare con il tasto destro sulla voce Nuovo account di accesso



Per creare un nuovo account:

  • inserisco un nuovo nome account (esempio: Pippo)
  • seleziono Autenticazione di Sql Server
  • assegno una password
  • spunto tutte le voci predefinite
  • seleziono il database predefinito (esempio: cmms)




Successivamente vado un Mapping utenti:

  • seleziono il database (esempio: cmms)
  • aggiungo il ruoolo di db_owner (in questo modo l'utente diventa proprietario del database) 



I passi successivi servono per nascondere gli altri database quando mi collego tramite Microsoft SQL Server Studio Express

E' necessario eseguire le seguenti query

Query 1
USE [master]

GO

Query 2 - make sure they can view all databases for the moment
GRANT VIEW ANY DATABASE TO Pippo
GO

Query 3 
USE cmms
GO

Query 4 - drop the user in the database if it already exists.
IF EXISTS (SELECT *
FROM sys.database_principals
WHERE name = N'Pippo')
DROP USER Pippo
GO

Query 5 - grant them ownership to of the database (ownership of dbo schema).
ALTER AUTHORIZATION ON DATABASE::cmms to Pippo
go

Query 6
USE MASTER
go

Query 7 - deny ability to see ohter databases
DENY VIEW ANY DATABASE TO Pippo
go

PS: Se questo articolo ti è stato utile o ti è semplicemente piaciuto, regalami un commento :-). Grazie!
Ciao Matteo

Nessun commento:

Posta un commento