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:
Successivamente vado un Mapping utenti:
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
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
Commenti
Posta un commento