Onde são concedidas permissões armazenadas no SQL Server?

1

Quando um usuário recebe direitos sobre algo no SQL Server usando a função GRANT, onde ele é registrado?

    
por Sean Howat 25.03.2010 / 15:33

3 respostas

1

Tente estes:

Na base de dados "Master":

sys.syslogins
sys.sysusers
sys.sql_logins

Acho que o INFORMATION_SCHEMA.TABLE_PRIVILEGES é apenas uma lista do que é permitido ser concedido e por quem.

Existe uma tabela sys.syspermissions , mas é muito feia de se ver, e não tenho certeza do que está armazenando.

Edit: Não é nenhuma das opções acima. Em vez disso, é a tabela sys.database_permissions apropriadamente denominada. Agora me sinto estúpido.

    
por 25.03.2010 / 16:34
2

As permissões de nível de servidor são armazenadas em tabelas internas expostas por meio da exibição de catálogo sys.server_premissions .

As permissões de nível de banco de dados são armazenadas em tabelas internas expostas por meio da exibição de catálogo sys.database_permissions .

Uma sessão pode verificar suas permissões, consultando a função de tabela interna fn_my_permissions .

Para verificar se as sessões têm uma permissão específica, use a função HAS_PERMS_BY_NAME .     

por 26.03.2010 / 00:30
0

Eu olharia primeiro no banco de dados mestre. Tente INFORMATION_SCHEMA.TABLE_PRIVILEGES.

    
por 25.03.2010 / 16:29