Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Altera o nome, a senha ou o esquema padrão de uma função de aplicativo.
Transact-SQL convenções de sintaxe
Sintaxe
ALTER APPLICATION ROLE application_role_name
WITH <set_item> [ , ...n ]
<set_item> ::=
NAME = new_application_role_name
| PASSWORD = 'password'
| DEFAULT_SCHEMA = schema_name
Argumentos
application_role_name
O nome da função do aplicativo a ser modificada.
NOME = new_application_role_name
Especifica o novo nome da função do aplicativo. Esse nome ainda não deve ser usado para se referir a qualquer entidade no banco de dados.
PASSWORD = 'palavra-passe'
Especifica a senha para a função do aplicativo.
password deve atender aos requisitos de diretiva de senha do Windows do computador que está executando a instância do SQL Server. Deve sempre utilizar palavras-passe fortes.
DEFAULT_SCHEMA = schema_name
Especifica o primeiro esquema que será pesquisado pelo servidor quando ele resolver os nomes dos objetos. schema_name pode ser um esquema que não existe no banco de dados.
Observações
Se o novo nome da função de aplicativo já existir no banco de dados, a instrução falhará. Quando o nome, a senha ou o esquema padrão de uma função de aplicativo é alterado, a ID associada à função não é alterada.
Importante
A política de expiração de senha não é aplicada às senhas de função do aplicativo. Por esse motivo, tenha cuidado redobrado ao selecionar senhas fortes. Os aplicativos que invocam funções de aplicativo devem armazenar suas senhas.
As funções do aplicativo são visíveis na exibição de sys.database_principals catálogo.
Observação
Os esquemas não são equivalentes aos usuários do banco de dados. Use as exibições do catálogo do sistema para identificar quaisquer diferenças entre os usuários e esquemas do banco de dados.
A partir do SQL Server 2012 (11.x), o SQL Server e o Banco de Dados SQL do Azure usavam um hash SHA-512 combinado com um sal aleatório e exclusivo de 32 bits. Este método tornou estatisticamente inviável para os atacantes deduzir senhas.
O SQL Server 2025 (17.x) introduz um algoritmo de hash iterado, RFC2898, também conhecido como função de derivação de chaves baseada em palavra-passe (PBKDF). Este algoritmo ainda usa SHA-512, mas hashes a senha várias vezes (100.000 iterações), retardando significativamente os ataques de força bruta. Essa alteração melhora a proteção por senha em resposta à evolução das ameaças à segurança e ajuda os clientes a cumprir as diretrizes do NIST SP 800-63b. Esta melhoria de segurança utiliza um algoritmo de hash mais forte, que pode aumentar ligeiramente o tempo de login para os logins de autenticação SQL. O impacto é geralmente menor em ambientes com pooling de ligações, mas pode ser mais notório em cenários sem pooling ou onde a latência de login é monitorizada de perto.
Permissões
Requer permissão ALTER ANY APPLICATION ROLE na base de dados. Para alterar o esquema padrão, o usuário também precisa da permissão ALTER na função do aplicativo. Uma função de aplicativo pode alterar seu próprio esquema padrão, mas não seu nome ou senha.
Exemplos
Um. Alterando o nome da função do aplicativo
O exemplo a seguir altera o nome da função weekly_receipts de aplicativo para receipts_ledger.
USE AdventureWorks2022;
CREATE APPLICATION ROLE weekly_receipts
WITH PASSWORD = '987Gbv8$76sPYY5m23' ,
DEFAULT_SCHEMA = Sales;
GO
ALTER APPLICATION ROLE weekly_receipts
WITH NAME = receipts_ledger;
GO
B. Alterando a senha da função do aplicativo
O exemplo a seguir altera a senha da função receipts_ledgerde aplicativo.
ALTER APPLICATION ROLE receipts_ledger
WITH PASSWORD = '897yUUbv867y$200nk2i';
GO
C. Alterar o nome, a palavra-passe e o esquema predefinido
O exemplo a seguir altera o nome, a senha e o esquema padrão da função receipts_ledger de aplicativo ao mesmo tempo.
ALTER APPLICATION ROLE receipts_ledger
WITH NAME = weekly_ledger,
PASSWORD = '897yUUbv77bsrEE00nk2i',
DEFAULT_SCHEMA = Production;
GO