Estou mantendo um aplicativo que roda com SQL Server 8.0.760 SP3.
Quando tento "ver" as permissões do usuário atual com o qual estou logado, faço o seguinte:
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
No entanto, o servidor retorna esta mensagem de erro:
Msg 208, Level 16, State 1, Line 1
Invalid object name 'fn_my_permissions'.
Se eu tentar a seguinte consulta: SELECT * FROM dbo.fn_my_permissions(NULL, 'SERVER');
, recebo a mesma mensagem de erro.
Como posso listar todas as permissões de usuário atuais?
Tive que escrever uma auditoria de permissões para algum relatório de conformidade há algum tempo e agora integrei esse relatório ao meu conjunto de scripts de banco de dados administrativos.
Coloquei uma cópia do procedimento que gera o relatório no pastebin para vocês e verifiquei que funciona com SQL Server 2000 ainda.
http://pastebin.com/08krN7jf
Ele gera o relatório em uma exibição em árvore com o login e o banco de dados padrão listados primeiro, depois quaisquer funções de nível de servidor, depois quaisquer funções de banco de dados e permissões explicitamente concedidas.
Editado para adicionar o código real diretamente na resposta, em vez de depender do link pastebin
Graças a este tópico: 'como verificar a permissão do usuário de login no sql server 2000' , consegui ver as permissões atuais do usuário.
Eu executo a seguinte consulta: