Come verificare i privilegi utente in SQL Server
Soluzione nativa
- Avvia Microsoft SQL Server Management Studio (MSSMS).
- Nel menu File, fai clic su Connect Object Explorer. Quindi, nella finestra di dialogo Connect to Server:
- Nella casella di riepilogo Server type, selezionare Database Engine.
- Nel campo di testo Server name, digitare il nome del server cluster SQL.
- In the Authentication list box, choose your SQL Server Authentication method and specify the user credentials. If you do not want to re-type the password every time you connect to the server, tick Remember password.
- Clicca Connect.
- Dopo la connessione, clicca su “New Query” e incolla la seguente query nel campo di ricerca (digita il nome utente completo, come ENTERPRISE\J.Carter):
--- Creating temporary table for permissions list ---
SELECT entity_class,
NAME AS entity_name,
subentity_name,
permission_name
INTO #permsummary
FROM (
--- Collecting object-level permissions ---
SELECT 'OBJECT' AS entity_class,
NAME,
subentity_name,
permission_name
FROM sys.objects
CROSS apply Fn_my_permissions(Quotename(NAME), 'OBJECT') a
UNION ALL
--- Collecting database-level permissions ---
SELECT 'DATABASE' AS entity_class,
NAME,
subentity_name,
permission_name
FROM sys.databases
CROSS apply Fn_my_permissions(Quotename(NAME), 'DATABASE') a
UNION ALL
--- Collecting server-level permissions ---
SELECT 'SERVER' AS entity_class,
@@SERVERNAME AS NAME,
subentity_name,
permission_name
FROM Fn_my_permissions(NULL, 'SERVER')) p
--- Grouping all effective permissions for single object ---
SELECT DISTINCT entity_class,
entity_name,
subentity_name,
permissions
FROM (SELECT *
FROM #permsummary) p1
CROSS APPLY (SELECT permission_name + ', '
FROM (SELECT *
FROM #permsummary) p2
WHERE p2.entity_class = p1.entity_class
AND p2.entity_name = p1.entity_name
AND p2.subentity_name = p1.subentity_name
ORDER BY entity_class
FOR xml path('')) D ( permissions )
--- Delete temporary table ---
DROP TABLE #permsummary
- Clicca su Execute (o premi il tasto F5).
- Rivedi l'elenco dei ruoli a livello di server e dei principali (nomi dei membri) nei risultati dell'esecuzione della query:
Netwrix Auditor per SQL Server
- Apri Netwrix Auditor e vai a Rapporti -> Predefiniti -> SQL Server - Stato nel Tempo -> Permessi Account in SQL Server.
- Specificare i seguenti filtri:
- Nel filtro User account, digita il nome completo dell'utente (come ENTERPRISE\J.Carter).
- Nel filtro del tipo di Object type, scegli Select all per visualizzare tutti i permessi di un utente.
- Clicca View per visualizzare un report chiaro sui permessi effettivi dell'utente:
Il campo “Means Granted” riflette i ruoli del server e i ruoli del database assegnati all'utente in questione. Facendo clic sui valori si aprirà il rapporto SQL Server Means Granted, che mostra ogni account con permessi espliciti ed ereditati sull'oggetto SQL Server selezionato e come tali permessi sono stati concessi.
Condividi su