Compartilhar via


sp_addrole (Transact-SQL)

Aplica-se: SQL Server

Cria uma nova função de banco de dados no banco de dados atual.

Importante

sp_addrole está incluído para compatibilidade com versões anteriores do SQL Server e pode não ter suporte em uma versão futura. Em vez disso, use CREATE ROLE .

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_addrole
    [ @rolename = ] N'rolename'
    [ , [ @ownername = ] N'ownername' ]
[ ; ]

Argumentos

@rolename [ = ] N'nome da função'

O nome da nova função de banco de dados. @rolename é sysname, sem padrão. @rolename deve ser um identificador válido e ainda não deve existir no banco de dados atual.

@ownername [ = ] N'nomedodono'

O proprietário da nova função de banco de dados. @ownername é sysname, com um padrão do usuário em execução atual. @ownername deve ser um usuário de banco de dados ou uma função de banco de dados no banco de dados atual.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

Os nomes das funções de banco de dados do SQL Server podem conter de 1 a 128 caracteres, incluindo letras, símbolos e números. Os nomes das funções de banco de dados não podem conter um caractere de barra invertida (\), be NULLou uma cadeia de caracteres vazia ('').

Depois de adicionar uma função de banco de dados, use sp_addrolemember para adicionar entidades de segurança à função. Quando GRANTinstruções , DENY, ou REVOKE são usadas para aplicar permissões à função de banco de dados, os membros da função de banco de dados herdam essas permissões como se as permissões fossem aplicadas diretamente às suas contas.

Observação

Novas funções de servidor não podem ser criadas. As funções podem ser criadas somente no nível do banco de dados.

sp_addrole não pode ser usado dentro de uma transação definida pelo usuário.

Permissões

Requer a permissão CREATE ROLE no banco de dados. Se estiver criando um esquema, será necessário CREATE SCHEMA no banco de dados. Se @ownername for especificado como um usuário ou grupo, requer IMPERSONATE nesse usuário ou grupo. Se @ownername for especificado como uma função, exigirá ALTER permissão nessa função ou em um membro dessa função. Se owner for especificado como uma função de aplicativo, exigirá ALTER permissão nessa função de aplicativo.

Exemplos

O exemplo a seguir adiciona uma nova função chamada Managers ao banco de dados atual.

EXEC sp_addrole 'Managers';