Como faço para gerar uma tabela de permissões concedidas para tabelas de banco de dados para um usuário de banco de dados?

StackOverflow https://stackoverflow.com/questions/212681

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu tenho um banco de dados SQL Server 2000 com cerca de um par de cem mesas. Existem várias contas de usuário SQL que podem acessar esse banco de dados, mas cada um tem diferentes permissões concedidas em tabelas no DB.

Como faço para criar um script para me dar um relatório das permissões concedidas a um usuário particular. ou seja, para gerar algo como:

Table      SELECT   DELETE   UPDATE    INSERT    ALTER
-----      ------   ------   ------    ------    -----
Invoices   Yes      No       Yes       Yes       No
Orders     Yes      Yes      Yes       Yes       No
Customers  Yes      No       Yes       Yes       No

e assim por diante. É sexta-feira, meu SQL-fu é baixa hoje e eu tenho um milhão de outras coisas para fazer antes de se terminar aqui hoje e se alguém tinha um script útil para fazer isso já, então eu seria eternamente grato:)

Foi útil?

Solução

Select TABLE_NAME, PRIVILEGE_TYPE
from INFORMATION_SCHEMA.TABLE_PRIVILEGES 
where GRANTEE = @username

Isto irá funcionar no servidor SQL 2000/2005/2008

Outras dicas

Eu não tenho certeza se este procedimento funciona para SQL 2000 ou não, ele não recebe o formato exato, mas você pode obter parte do caminho até lá, pode você pode girar para fora para obter o seu formato.

sys.sp_helprotect @Username = 'myUser'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top