sys.sp_helprotect (Transact-SQL)

Aplica-se a: SQL Server

Devolve um relatório que é informação sobre permissões de utilizador para um objeto, ou permissões de instruções, na base de dados atual.

Importante

sp_helprotectnão devolve informações sobre securáveis que foram introduzidas no SQL Server 2005 (9.x) e versões posteriores. Usa sys.database_permissions e sys.fn_builtin_permissions em vez disso.

Não lista permissões que são sempre atribuídas aos papéis fixos do servidor ou à base de dados fixa. Não inclui logins nem utilizadores que recebem permissões com base na sua pertença a uma função.

Transact-SQL convenções de sintaxe

Sintaxe

sys.sp_helprotect
    [ [ @name = ] N'name' ]
    [ , [ @username = ] N'username' ]
    [ , [ @grantorname = ] N'grantorname' ]
    [ , [ @permissionarea = ] 'permissionarea' ]
[ ; ]

Arguments

[ @name = ] N'nome'

O nome do objeto na base de dados atual, ou uma instrução, são as permissões para reportar. @name é nvarchar(776), com um padrão de NULL, que devolve todas as permissões de objeto e instrução. Se o valor for um objeto (tabela, vista, procedimento armazenado ou procedimento armazenado estendido), deve ser um objeto válido na base de dados atual. O nome do objeto pode incluir um qualificador de proprietário no formulário <owner>.<object>.

Se @name é uma afirmação, pode ser uma CREATE afirmação.

[ @username = ] N'nome de utilizador'

O nome do principal para o qual são devolvidas as permissões. @username é sysname, com um padrão de NULL, que devolve todos os principais da base de dados atual. @username deve existir na base de dados atual.

[ @grantorname = ] N'nome do doentente'

O nome do diretor que concedeu as permissões. @grantorname é sysname, com um padrão de NULL, que devolve toda a informação das permissões concedidas por qualquer principal na base de dados.

[ @permissionarea = ] 'área de permissões'

Uma cadeia de caracteres que indica se deve mostrar permissões de objeto (cadeia ode caracteres), permissões de instrução (cadeia sde caracteres), 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 de código de retorno

0 (sucesso) ou 1 (fracasso).

Conjunto de resultados

Nome da coluna Tipo de dados Description
Owner sysname Nome do proprietário do objeto.
Object sysname Nome do objeto.
Grantee sysname Nome do diretor a quem foram concedidas as permissões.
Grantor sysname Nome do principal que concedeu as permissões ao beneficiário especificado.
ProtectType Nvarchar(10) Nome do tipo de proteção:

GRANT REVOKE
Action nvarchar(60) Nome da autorização. Declarações de permissão válidas dependem do tipo de objeto.
Column sysname Tipo de permissão:

All = Permissão cobre todas as colunas atuais do objeto.
New = Permissão cobre quaisquer novas colunas que possam ser alteradas (usando a ALTER instrução) no objeto no futuro.
All+New = Combinação de All e New.

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

Remarks

Todos os parâmetros do procedimento seguinte são opcionais. Se executado sem parâmetros, sp_helprotect mostra todas as permissões concedidas ou negadas na base de dados atual.

Se alguns, mas não todos, os parâmetros forem especificados, use parâmetros nomeados para identificar o parâmetro em questão ou NULL como marcador de lugar. Por exemplo, para reportar todas as permissões para o proprietário da base de dados concedente (dbo), execute o seguinte script:

EXECUTE sp_helprotect NULL, NULL, dbo;

Ou

EXECUTE sp_helprotect @grantorname = 'dbo';

O relatório de saída está ordenado por categoria de permissões, proprietário, objeto, concessionário, concedente, categoria tipo de proteção, tipo de proteção, ação e ID sequencial da coluna.

Permissions

Requer adesão à função pública de .

A informação devolvida está sujeita a restrições no acesso aos metadados. Entidades sobre as quais o principal não tem permissão não aparecem. Para obter mais informações, consulte Configuração de visibilidade de metadados.

Examples

A. Liste as permissões para uma tabela

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

EXECUTE sp_helprotect 'titles';

B. Liste as permissões para um utilizador

O exemplo seguinte lista todas as permissões que esse utilizador Judy tem na base de dados atual.

EXECUTE sp_helprotect NULL, 'Judy';

C. Liste as permissões concedidas por um utilizador específico

O exemplo seguinte lista todas as permissões concedidas pelo utilizador Judy na base de dados atual e é usado NULL como marcador para os parâmetros em falta.

EXECUTE sp_helprotect NULL, NULL, 'Judy';

D. Liste apenas as permissões da instrução

O exemplo seguinte lista todas as permissões de instruções na base de dados atual e é usado NULL como marcador de posição para os parâmetros em falta.

EXECUTE sp_helprotect NULL, NULL, NULL, 's';

e. Listar as permissões para uma instrução CREATE

O exemplo seguinte lista todos os utilizadores que receberam essa CREATE TABLE permissão.

EXECUTE sp_helprotect @name = 'CREATE TABLE';