Compartilhar via


sp_addapprole (Transact-SQL)

Aplica-se: SQL Server

Adiciona uma função de aplicativo ao banco de dados atual.

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Em vez disso, use CREATE APPLICATION ROLE .

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_addapprole
    [ @rolename = ] N'rolename'
    , [ @password = ] N'password'
[ ; ]

Argumentos

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

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

Os nomes de função de aplicativo podem conter de 1 até 128 caracteres, inclusive cartas, símbolos e números. Os nomes de função não podem conter uma barra invertida (\) nem be NULL ou uma cadeia de caracteres vazia ('').

@password [ = ] N'senha'

A senha necessária para ativar a função de aplicativo. @password é sysname, sem padrão. @password não pode ser NULL.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

Em versões anteriores do SQL Server, os usuários (e funções) não são totalmente distintos dos esquemas. A partir do SQL Server 2005 (9.x), os esquemas são totalmente distintos das funções. Essa arquitetura é refletida no comportamento do CREATE APPLICATION ROLE. Esta declaração substitui sp_addapprole.

Para manter a compatibilidade com versões anteriores do SQL Server, sp_addapprole faça as seguintes verificações:

  • Se um esquema com o mesmo nome da função de aplicativo ainda não existir, o esquema será criado. O novo esquema pertence à função de aplicativo e é o esquema padrão da função de aplicativo.

  • Se já existir um esquema com o mesmo nome da função de aplicativo, o procedimento falhará.

  • sp_addapprole não verifica a complexidade da senha. A complexidade da senha é verificada por CREATE APPLICATION ROLE.

O parâmetro @password é armazenado como um hash unidirecional.

O sp_addapprole procedimento armazenado não pode ser executado de dentro de uma transação definida pelo usuário.

Importante

A opção ODBC encrypt da Microsoft não é compatível com SqlClient. Quando possível, solicite que os usuários insiram as credenciais de função de aplicativo no momento da execução. Evite armazenar as credenciais em um arquivo. Se precisar manter as credenciais, criptografe-as usando as funções CryptoAPI.

Permissões

Requer a permissão ALTER ANY APPLICATION ROLE no banco de dados. Se um esquema com o mesmo nome e proprietário da nova função ainda não existir, também exigirá a permissão CREATE SCHEMA no banco de dados.

Exemplos

O exemplo a seguir adiciona a nova função SalesApp de aplicativo com a senha x97898jLJfcooFUYLKm387gf3 ao banco de dados atual.

EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3';
GO