sp_addrole (Transact-SQL)

Aplica-se a: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'nomedafunção'

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

@ownername [ = ] N'nome do proprietário'

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 (Transact-SQL) para adicionar entidades à função. Quando GRANT, ou REVOKE instruções são usadas para aplicar permissões à função de banco de dados, DENYos 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

Não é possível criar novas funções de servidor. 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, será necessário IMPERSONATE para esse usuário ou grupo. Se @ownername for especificado como uma função, requer ALTER permissão nessa função ou em um membro dessa função. Se o proprietário for especificado como uma função de aplicativo, será necessária 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';