ALTER APPLICATION ROLE (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Modifie le nom, le mot de passe ou le schéma par défaut d'un rôle d'application.

Conventions de la syntaxe Transact-SQL

Syntaxe

  
ALTER APPLICATION ROLE application_role_name
    WITH <set_item> [ ,...n ]  
  
<set_item> ::=
    NAME = new_application_role_name
    | PASSWORD = 'password'  
    | DEFAULT_SCHEMA = schema_name  

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

application_role_name
Nom du rôle d'application à modifier.

NAME =new_application_role_name
Spécifie le nouveau nom du rôle d'application. Ce nom ne doit pas être déjà utilisé pour référencer un principal dans la base de données.

PASSWORD ='password'
Spécifie le mot de passe du rôle d'application. password doit satisfaire aux critères de la stratégie de mot de passe Windows de l’ordinateur qui exécute l’instance de SQL Server. Vous devez toujours utiliser des mots de passe forts.

DEFAULT_SCHEMA =schema_name
Indique le premier schéma dans lequel le serveur doit effectuer des recherches lorsqu'il résout les noms des objets. schema_name peut être un schéma qui n’existe pas dans la base de données.

Notes

Si le nouveau nom du rôle d'application existe déjà dans la base de données, l'instruction échoue. Lorsque le nom, le mot de passe ou le schéma par défaut d'un rôle d'application est modifié, l'ID associé au rôle ne l'est pas.

Important

Les stratégies d'expiration des mots de passe ne s'appliquent pas aux mots de passe des rôles d'application. Pour cette raison, faites extrêmement attention lorsque vous choisissez des mots de passe forts. Les applications qui appellent des rôles d'application doivent stocker leurs mots de passe.

Les rôles d'application sont visibles dans l'affichage de catalogue sys.database_principals.

Attention

Dans SQL Server 2005 (9.x), le comportement des schémas est modifié par rapport aux versions antérieures de SQL Server. Un code qui suppose que les schémas sont équivalents aux utilisateurs de base de données peut retourner des résultats incorrects. Vous ne devez pas recourir aux anciens affichages catalogue, notamment sysobjects, dans une base de données où une des instructions DDL suivantes a été utilisée : CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. Dans une base de données où une de ces instructions a été utilisée, vous devez recourir aux nouveaux affichages catalogue. Les nouveaux affichages catalogue prennent en compte la séparation des principaux et des schémas introduite dans SQL Server 2005 (9.x). Pour plus d'informations sur les affichages catalogue, consultez Affichages catalogue (Transact-SQL).

Autorisations

Nécessite l'autorisation ALTER ANY APPLICATION ROLE sur la base de données. Pour modifier le schéma par défaut, l'utilisateur doit également bénéficier de l'autorisation ALTER sur le rôle d'application. Un rôle d'application peut modifier son schéma par défaut, mais pas son nom ni son mot de passe.

Exemples

R. Modification du nom d'un rôle d'application

Le code exemple suivant remplace le nom du rôle d'application weekly_receipts par 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. Modification du mot de passe d'un rôle d'application

Le code exemple suivant modifie le mot de passe du rôle d'application receipts_ledger.

ALTER APPLICATION ROLE receipts_ledger   
    WITH PASSWORD = '897yUUbv867y$200nk2i';  
GO  

C. Modification du nom, du mot de passe et du schéma par défaut

Le code exemple suivant modifie simultanément le nom, le mot de passe et le schéma par défaut du rôle d'application receipts_ledger.

ALTER APPLICATION ROLE receipts_ledger   
    WITH NAME = weekly_ledger,   
    PASSWORD = '897yUUbv77bsrEE00nk2i',   
    DEFAULT_SCHEMA = Production;  
GO  

Voir aussi

Rôles d’application
CREATE APPLICATION ROLE (Transact-SQL)
DROP APPLICATION ROLE (Transact-SQL)
EVENTDATA (Transact-SQL)