Como verificar privilégios de usuário no SQL Server
Solução Nativa
- Inicie o Microsoft SQL Server Management Studio (MSSMS).
- No menu File, clique em Connect Object Explorer. Em seguida, na caixa de diálogo Connect to Server:
- Na caixa de lista Server type, selecione Database Engine.
- No campo Server name de texto, digite o nome do servidor de 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.
- Clique Connect.
- Após a conexão, clique em “New Query” e cole a seguinte consulta no campo de consulta (digite o nome de usuário completo, como 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
- Clique em Execute (ou pressione a tecla F5).
- Revise a lista de funções e principais no nível do servidor (nomes dos membros) nos resultados da execução da consulta:
Netwrix Auditor para SQL Server
- Abra o Netwrix Auditor e navegue até Relatórios -> Predefinidos -> SQL Server - Estado em Tempo -> Permissões de Conta no SQL Server.
- Especifique os seguintes filtros:
- No filtro de User account, digite o nome completo do usuário (como ENTERPRISE\J.Carter).
- No filtro de Object type, escolha Select all para ver todas as permissões de um usuário.
- Clique em View para ver um relatório claro sobre as permissões efetivas para o usuário:
O campo “Meios Concedidos” reflete as funções de servidor e funções de banco de dados atribuídas ao usuário em questão. Clicar nos valores abrirá o relatório de Meios Concedidos do SQL Server, que mostra cada conta com permissões explícitas e herdadas no objeto SQL Server selecionado e como essas permissões foram concedidas.
Compartilhar em