sp_helprotect (Transact-SQL)
Aplica-se: SQL Server
Retorna um relatório que contém informações sobre permissões de usuário para um objeto ou permissões de instrução no banco de dados atual.
Importante
sp_helprotect
não retorna informações sobre protegíveis que foram introduzidos no SQL Server 2005 (9.x) e versões posteriores. Em vez disso, use sys.database_permissions e sys.fn_builtin_permissions .
Não lista as permissões que sempre são atribuídas às funções de servidor fixas ou às funções de banco de dados fixas. Não inclui logons ou usuários que recebem permissões com base em sua associação a uma função.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_helprotect
[ [ @name = ] N'name' ]
[ , [ @username = ] N'username' ]
[ , [ @grantorname = ] N'grantorname' ]
[ , [ @permissionarea = ] 'permissionarea' ]
[ ; ]
Argumentos
[ @name = ] N'name'
O nome do objeto no banco de dados atual, ou uma instrução, que são as permissões para relatar. @name é nvarchar(776), com um padrão de , que retorna todas as permissões de NULL
objeto e instrução. Se o valor for um objeto (tabela, exibição, procedimento armazenado ou procedimento armazenado estendido), ele deverá ser um objeto válido no banco de dados atual. O nome do objeto pode incluir um qualificador de proprietário no formato <owner>.<object>
.
Se @name é uma declaração, pode ser uma CREATE
declaração.
@username [ = ] N'nome de usuário'
O nome da entidade para a qual as permissões são retornadas. @username é sysname, com um padrão de , que retorna todas as entidades de segurança no banco de NULL
dados atual. @username deve existir no banco de dados atual.
@grantorname [ = ] N'grantorname'
O nome da entidade de segurança que concedeu permissões. @grantorname é sysname, com um padrão de , que retorna todas as informações para permissões concedidas por qualquer entidade de segurança no banco de NULL
dados.
@permissionarea [ = ] 'área de permissão'
Uma cadeia de caracteres que indica se as permissões de objeto (cadeia de caracteres o
), as permissões de instrução (cadeia de caracteres s
) ou ambas (o s
). @permissionarea é varchar(10), com um padrão de o s
. @permissionarea pode ser qualquer combinação de o
e s
, com ou sem vírgulas ou espaços entre o
e s
.
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Conjunto de resultados
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
Owner |
sysname | Nome do proprietário do objeto. |
Object |
sysname | Nome do objeto. |
Grantee |
sysname | Nome do principal para o qual foram concedidas permissões. |
Grantor |
sysname | Nome do principal que concedeu permissões ao usuário autorizado especificado. |
ProtectType |
nvarchar(10) | Nome do tipo de proteção:GRANT REVOKE |
Action |
nvarchar(60) | Nome da permissão. As instruções de permissão válidas dependem do tipo de objeto. |
Column |
sysname | Tipo de permissão:All = A permissão abrange todas as colunas atuais do objeto.New = A permissão abrange todas as novas colunas que podem ser alteradas (usando a ALTER instrução) no objeto no futuro.All+New = Combinação de All e New .Retorna um ponto se o tipo de permissão não se aplicar a colunas. |
Comentários
Todos os parâmetros no procedimento seguinte são opcionais. Se executado sem parâmetros, sp_helprotect
exibe todas as permissões concedidas ou negadas no banco de dados atual.
Se alguns, mas não todos os parâmetros forem especificados, use parâmetros nomeados para identificar o parâmetro particular ou NULL
como um espaço reservado. Por exemplo, para relatar todas as permissões para o proprietário do banco de dados concedente (dbo
), execute o seguinte script:
EXEC sp_helprotect NULL, NULL, dbo;
Ou
EXEC sp_helprotect @grantorname = 'dbo';
O relatório de saída é classificado por categoria de permissão, proprietário, usuário autorizado, concessor, categoria de tipo de proteção, tipo de proteção, ação e ID sequencial de coluna.
Permissões
Requer associação à função pública .
As informações retornadas estão sujeitas a restrições no acesso para metadados. As entidades nas quais a entidade de segurança não tem permissão não aparecem. Para obter mais informações, consulte Metadata Visibility Configuration.
Exemplos
R. Listar as permissões de uma tabela
O exemplo seguinte lista as permissões para a tabela titles
.
EXEC sp_helprotect 'titles';
B. Listar as permissões de um usuário
O exemplo seguinte lista todas as permissões que usuário Judy
tem no banco de dados atual.
EXEC sp_helprotect NULL, 'Judy';
C. Listar as permissões concedidas por um usuário específico
O exemplo a seguir lista todas as permissões concedidas pelo usuário Judy
no banco de dados atual e usa NULL
como espaço reservado para os parâmetros ausentes.
EXEC sp_helprotect NULL, NULL, 'Judy';
D. Listar apenas as permissões de instrução
O exemplo a seguir lista todas as permissões de instrução no banco de dados atual e usa o NULL
como um espaço reservado para os parâmetros ausentes.
EXEC sp_helprotect NULL, NULL, NULL, 's';
e. Listando as permissões de uma instrução CREATE
O exemplo a seguir lista todos os usuários que receberam a CREATE TABLE
permissão.
EXEC sp_helprotect @name = 'CREATE TABLE';