Compartilhar via


sp_helprotect (Transact-SQL)

Retorna um relatório que tem informações sobre permissões para um objeto ou permissões de instrução, no banco de dados atual.

Observação importanteImportante

O sp_helprotect não retorna informações sobre protegíveis que foram apresentados no SQL Server 2005. Em vez disso, use sys.database_permissions e fn_builtin_permissions.

Não lista as permissões que sempre são atribuídas às funções de servidor fixas ou funções de banco de dados fixas. Não inclui os logons ou os usuários que recebem permissões com base em sua associação em uma função.

Ícone de vínculo de tópico Convenções de sintaxe Transact-SQL

Sintaxe

sp_helprotect [ [ @name = ] 'object_statement' ] 
     [ , [ @username = ] 'security_account' ] 
     [ , [ @grantorname = ] 'grantor' ] 
     [ , [ @permissionarea = ] 'type' ]

Argumentos

  • [ [ @name = ] 'object_statement'
    É o nome do objeto no banco de dados atual ou uma instrução, que tem as permissões para relatar. O object_statement é um nvarchar(776), com o padrão NULL, que retorna todos os objetos e todas as permissões de 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 de objeto pode incluir um qualificador de proprietário no formato owner**.**object.

    Se object_statement for uma instrução, ele poderá ser uma instrução CREATE.

  • [ @username = ] 'security_account'
    É o nome do principal para o qual as permissões são retornadas. O security_account é um sysname, com o padrão de NULL, que retorna todos principais no banco de dados atual. O security_account deve existir no banco de dados atual.

  • [ @grantorname = ] 'grantor'
    É o nome da entidade de segurança que concedeu permissões. grantor é sysname, com um padrão de NULL, que retorna todas as informações de permissões concedidas por uma entidade de segurança no banco de dados.

  • [ @permissionarea = ] 'type'
    É uma cadeia de caracteres que indica se mostrará permissões de objetos (cadeia de caracteres o), permissões de instruções (cadeia de caracteres s) ou ambas (o s). O type é um varchar(10), com um padrão de o s. type que pode ser qualquer combinação de o e s, com ou sem vírgulas ou espaços entre o e s.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Conjuntos de resultados

Nome da coluna

Tipo de dados

Descrição

Proprietário

sysname

Nome do proprietário do objeto.

Objeto

sysname

Nome do objeto.

Grantee

sysname

Nome do principal para o qual foram concedidas permissões.

Concessor

sysname

Nome do principal que concedeu permissões ao usuário autorizado especificado.

ProtectType

nvarchar(10)

Nome do tipo de proteção:

GRANT REVOKE

Ação

nvarchar(60)

Nome da permissão. As instruções de permissão válidas dependem do tipo de objeto.

Coluna

sysname

Tipo de permissão:

Todas = Permissão que cobre todas as colunas atuais do objeto.

Nova = Permissão que cobre qualquer coluna nova que possa ser alterada (com a instrução ALTER) no objeto no futuro.

Todas+Nova = combinação de Todas e Nova.

Retornará um ponto se o tipo de permissão não se aplicar às colunas.

Comentários

Todos os parâmetros no procedimento seguinte são opcionais. Se for executado sem parâmetros, o sp_helprotect mostra todas as permissões que tenham sido 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 de concessor (dbo), execute o seguinte:

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 a associação à função public.

As informações retornadas estão sujeitas a restrições no acesso para metadados. Entidades em que o principal não tem nenhuma permissão não aparecem. Para obter mais informações, consulte Configuração de visibilidade de metadados.

Exemplos

A. Listando as permissões para uma tabela

O exemplo seguinte lista as permissões para a tabela titles.

EXEC sp_helprotect 'titles';

B. Listando as permissões para 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. Listando as permissões concedidas por um usuário específico

O exemplo a seguir lista todas as permissões que foram concedidas pelo usuário Judy no banco de dados atual, e usa o NULL como um espaço reservado para os parâmetros faltantes.

EXEC sp_helprotect NULL, NULL, 'Judy';

D. Listando 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 permissão CREATE TABLE.

EXEC sp_helprotect @name = 'CREATE TABLE';

Consulte também

Referência

Procedimentos armazenados de segurança (Transact-SQL)

DENY (Transact-SQL)

GRANT (Transact-SQL)

REVOKE (Transact-SQL)

Procedimentos armazenados do sistema (Transact-SQL)