ALTER AUTHORIZATION (Transact-SQL)ALTER AUTHORIZATION (Transact-SQL)

S’applique à :Applies to: ouiSQL ServerSQL Server (toutes les versions prises en charge) yesSQL ServerSQL Server (all supported versions) OuiAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database OuiAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance ouiAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics ouiParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data WarehouseS’applique à :Applies to: ouiSQL ServerSQL Server (toutes les versions prises en charge) yesSQL ServerSQL Server (all supported versions) OuiAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database OuiAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance ouiAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics ouiParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

Change la propriété d'un élément sécurisable.Changes the ownership of a securable.

Icône du lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

-- Syntax for SQL Server  
ALTER AUTHORIZATION    
   ON [ <class_type>:: ] entity_name    
   TO { principal_name | SCHEMA OWNER }    
[;]    
    
<class_type> ::=    
    {    
        OBJECT | ASSEMBLY | ASYMMETRIC KEY | AVAILABILITY GROUP | CERTIFICATE     
      | CONTRACT | TYPE | DATABASE | ENDPOINT | FULLTEXT CATALOG     
      | FULLTEXT STOPLIST | MESSAGE TYPE | REMOTE SERVICE BINDING    
      | ROLE | ROUTE | SCHEMA | SEARCH PROPERTY LIST | SERVER ROLE     
      | SERVICE | SYMMETRIC KEY | XML SCHEMA COLLECTION    
    }    
-- Syntax for SQL Database  
  
ALTER AUTHORIZATION    
   ON [ <class_type>:: ] entity_name    
   TO { principal_name | SCHEMA OWNER }    
[;]    
    
<class_type> ::=    
    {    
      OBJECT | ASSEMBLY | ASYMMETRIC KEY | CERTIFICATE     
    | TYPE | DATABASE | FULLTEXT CATALOG     
    | FULLTEXT STOPLIST     
    | ROLE | SCHEMA | SEARCH PROPERTY LIST     
    | SYMMETRIC KEY | XML SCHEMA COLLECTION    
    }    
-- Syntax for Azure Synapse Analytics  
  
ALTER AUTHORIZATION ON    
    [ <class_type> :: ] <entity_name>     
    TO { principal_name | SCHEMA OWNER }    
[;]    
    
<class_type> ::= {    
      SCHEMA     
    | OBJECT     
}    
    
<entity_name> ::=    
{    
      schema_name    
    | [ schema_name. ] object_name    
}    
-- Syntax for Parallel Data Warehouse  
  
ALTER AUTHORIZATION ON    
    [ <class_type> :: ] <entity_name>     
    TO { principal_name | SCHEMA OWNER }    
[;]    
    
<class_type> ::= {    
      DATABASE     
    | SCHEMA     
    | OBJECT     
}    
    
<entity_name> ::=    
{    
      database_name 
    | schema_name    
    | [ schema_name. ] object_name    
}    

Notes

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 et versions antérieures, consultez Versions antérieures de la documentation.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumentsArguments

<class_type> Classe sécurisable de l'entité pour laquelle il y a un changement de propriétaire.<class_type> Is the securable class of the entity for which the owner is being changed. OBJECT est la valeur par défaut.OBJECT is the default.

ClasseClass ProduitProduct
OBJECTOBJECT S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Azure SQL DatabaseAzure SQL Database, Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse), Parallel Data WarehouseParallel Data Warehouse.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Azure SQL DatabaseAzure SQL Database, Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse), Parallel Data WarehouseParallel Data Warehouse.
ASSEMBLYASSEMBLY S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Azure SQL DatabaseAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Azure SQL DatabaseAzure SQL Database.
ASYMMETRIC KEYASYMMETRIC KEY S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Azure SQL DatabaseAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Azure SQL DatabaseAzure SQL Database.
AVAILABILITY GROUPAVAILABILITY GROUP S’APPLIQUE À : SQL Server 2012 et versions ultérieures.APPLIES TO: SQL Server 2012 and later.
CERTIFICATECERTIFICATE S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Azure SQL DatabaseAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Azure SQL DatabaseAzure SQL Database.
CONTRACTCONTRACT S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures.APPLIES TO: SQL Server 2008SQL Server 2008 and later.
DATABASEDATABASE S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Azure SQL DatabaseAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Azure SQL DatabaseAzure SQL Database. Pour plus d’informations, consultez la section ALTER AUTHORIZATION pour les bases de données, ci-dessous.For more information,see ALTER AUTHORIZATION FOR databases section below.
ENDPOINTENDPOINT S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures.APPLIES TO: SQL Server 2008SQL Server 2008 and later.
FULLTEXT CATALOGFULLTEXT CATALOG S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Azure SQL DatabaseAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Azure SQL DatabaseAzure SQL Database.
FULLTEXT STOPLISTFULLTEXT STOPLIST S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Azure SQL DatabaseAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Azure SQL DatabaseAzure SQL Database.
MESSAGE TYPEMESSAGE TYPE S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures.APPLIES TO: SQL Server 2008SQL Server 2008 and later.
REMOTE SERVICE BINDINGREMOTE SERVICE BINDING S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures.APPLIES TO: SQL Server 2008SQL Server 2008 and later.
ROLEROLE S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Azure SQL DatabaseAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Azure SQL DatabaseAzure SQL Database.
ROUTEROUTE S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures.APPLIES TO: SQL Server 2008SQL Server 2008 and later.
SCHEMASCHEMA S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Azure SQL DatabaseAzure SQL Database, Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse), Parallel Data WarehouseParallel Data Warehouse.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Azure SQL DatabaseAzure SQL Database, Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse), Parallel Data WarehouseParallel Data Warehouse.
SEARCH PROPERTY LISTSEARCH PROPERTY LIST S’APPLIQUE À : SQL Server 2012 (11.x)SQL Server 2012 (11.x) et versions ultérieures, Azure SQL DatabaseAzure SQL Database.APPLIES TO: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, Azure SQL DatabaseAzure SQL Database.
SERVER ROLESERVER ROLE S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures.APPLIES TO: SQL Server 2008SQL Server 2008 and later.
SERVICESERVICE S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures.APPLIES TO: SQL Server 2008SQL Server 2008 and later.
SYMMETRIC KEYSYMMETRIC KEY S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Azure SQL DatabaseAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Azure SQL DatabaseAzure SQL Database.
TYPETYPE S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Azure SQL DatabaseAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Azure SQL DatabaseAzure SQL Database.
XML SCHEMA COLLECTIONXML SCHEMA COLLECTION S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Azure SQL DatabaseAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Azure SQL DatabaseAzure SQL Database.

entity_name entity_name
Nom de l'entité.Is the name of the entity.

principal_name | SCHEMA OWNERprincipal_name | SCHEMA OWNER
Nom du principal de sécurité qui possède l'entité.Name of the security principal that will own the entity. Les objets de bases de données doivent appartenir à un principal de base de données, un utilisateur de base de données ou un rôle.Database objects must be owned by a database principal; a database user or role. Les objets serveur (par exemple les bases de données) doivent appartenir à un principal serveur (un identifiant de connexion).Server objects (such as databases) must be owned by a server principal (a login). Spécifiez SCHEMA OWNER comme principal_name pour indiquer que l’objet doit appartenir au principal qui est propriétaire du schéma de l’objet.Specify SCHEMA OWNER as the principal_name to indicate that the object should be owned by the principal that owns the schema of the object.

NotesRemarks

ALTER AUTHORIZATION peut s'utiliser pour modifier la propriété d'une entité qui a un propriétaire.ALTER AUTHORIZATION can be used to change the ownership of any entity that has an owner. La propriété d'entités contenues dans une base de données peut être transférée à n'importe quel principal de niveau base de données.Ownership of database-contained entities can be transferred to any database-level principal. La propriété d'entités de niveau serveur peut être transférée à n'importe quel principal de niveau serveur.Ownership of server-level entities can be transferred only to server-level principals.

Important

À partir de SQL Server 2005 (9.x)SQL Server 2005 (9.x), un utilisateur peut être propriétaire d'un OBJECT ou d'un TYPE contenu dans un schéma appartenant à un autre utilisateur de base de données.Beginning with SQL Server 2005 (9.x)SQL Server 2005 (9.x), a user can own an OBJECT or TYPE that is contained by a schema owned by another database user. Il s'agit là d'une différence par rapport aux versions antérieures de SQL ServerSQL Server.This is a change of behavior from earlier versions of SQL ServerSQL Server. Pour plus d’informations, consultez OBJECTPROPERTY (Transact-SQL) et TYPEPROPERTY (Transact-SQL).For more information, see OBJECTPROPERTY (Transact-SQL) and TYPEPROPERTY (Transact-SQL).

La propriété des entités suivantes, contenues dans un schéma et de type « objet » peut être transférée : tables, vues, fonctions, procédures, files d'attente et synonymes.Ownership of the following schema-contained entities of type "object" can be transferred: tables, views, functions, procedures, queues, and synonyms.

La propriété des entités suivantes ne peut pas être transférée : serveurs liés, statistiques, contraintes, règles, valeurs par défaut, déclencheurs, files d'attente Service BrokerService Broker, informations d'identification, fonctions de partition, schémas de partition, clés principales de base de données, clé principale de service et notifications d'événements.Ownership of the following entities cannot be transferred: linked servers, statistics, constraints, rules, defaults, triggers, Service BrokerService Broker queues, credentials, partition functions, partition schemes, database master keys, service master key, and event notifications.

La propriété des membres des classes sécurisables suivantes ne peut pas être transférée : serveur, connexion, utilisateur, rôle d'application et colonne.Ownership of members of the following securable classes cannot be transferred: server, login, user, application role, and column.

L'option SCHEMA OWNER n'est valide que lorsque vous transférez la propriété d'une entité contenue dans un schéma.The SCHEMA OWNER option is only valid when you are transferring ownership of a schema-contained entity. SCHEMA OWNER transférera la propriété de l'entité au propriétaire du schéma dans lequel elle réside.SCHEMA OWNER will transfer ownership of the entity to the owner of the schema in which it resides. Seules les entités des classes OBJECT, TYPE ou XML SCHEMA COLLECTION sont contenues dans des schémas.Only entities of class OBJECT, TYPE, or XML SCHEMA COLLECTION are schema-contained.

Si l'entité cible n'est pas une base de données et que l'entité est transférée à un nouveau propriétaire, toutes les autorisations de la cible seront supprimées.If the target entity is not a database and the entity is being transferred to a new owner, all permissions on the target will be dropped.

Attention

Dans SQL Server 2005 (9.x)SQL Server 2005 (9.x), le comportement des schémas n'est pas le même que dans les versions antérieures de SQL ServerSQL Server.In SQL Server 2005 (9.x)SQL Server 2005 (9.x), the behavior of schemas changed from the behavior in earlier versions of SQL ServerSQL Server. Un code qui suppose que les schémas sont équivalents aux utilisateurs de base de données peut retourner des résultats incorrects.Code that assumes that schemas are equivalent to database users may not return correct results. 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.Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements has ever been used: 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.In a database in which any of these statements has ever been used, you must use the new catalog views. Les nouvelles vues de catalogue prennent en compte la séparation des principaux et des schémas introduite dans SQL Server 2005 (9.x)SQL Server 2005 (9.x).The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005 (9.x)SQL Server 2005 (9.x). Pour plus d’informations sur les affichages catalogue, consultez Affichages catalogue (Transact-SQL).For more information about catalog views, see Catalog Views (Transact-SQL).

En outre, notez les points suivants :Also, note the following:

Important

La seule méthode fiable pour rechercher le propriétaire d’un objet est d’interroger la vue de catalogue sys.objects.The only reliable way to find the owner of a object is to query the sys.objects catalog view. La seule méthode fiable pour rechercher le propriétaire d'un type est d'utiliser la fonction TYPEPROPERTY.The only reliable way to find the owner of a type is to use the TYPEPROPERTY function.

Cas particuliers et conditionsSpecial Cases and Conditions

Le tableau suivant récapitule les cas particuliers, les exceptions et les conditions qui s'appliquent à l'autorisation de modification.The following table lists special cases, exceptions, and conditions that apply to altering authorization.

ClasseClass ConditionCondition
OBJECTOBJECT Impossible de modifier la propriété des déclencheurs, des contraintes, des règles, des valeurs par défaut, des statistiques, des objets système, des files d'attente, des vues indexées ou des tables avec des vues indexées.Cannot change ownership of triggers, constraints, rules, defaults, statistics, system objects, queues, indexed views, or tables with indexed views.
SCHEMASCHEMA Lors d'un transfert de propriété, les autorisations sur des objets contenus dans des schémas n'ayant pas de propriétaires explicites seront supprimées.When ownership is transferred, permissions on schema-contained objects that do not have explicit owners will be dropped. Impossible de modifier le propriétaire de sys, dbo ou information_schema.Cannot change the owner of sys, dbo, or information_schema.
TYPETYPE Impossible de modifier le propriétaire d'un TYPE qui appartient à sys ou information_schema.Cannot change ownership of a TYPE that belongs to sys or information_schema.
CONTRACT, MESSAGE TYPE ou SERVICECONTRACT, MESSAGE TYPE, or SERVICE Impossible de modifier la propriété des entités système.Cannot change ownership of system entities.
SYMMETRIC KEYSYMMETRIC KEY Impossible de modifier la propriété des clés temporaires globales.Cannot change ownership of global temporary keys.
CERTIFICATE ou ASYMMETRIC KEYCERTIFICATE or ASYMMETRIC KEY Impossible de transférer la propriété de ces entités vers un rôle ou un groupe.Cannot transfer ownership of these entities to a role or group.
ENDPOINTENDPOINT Le principal doit être une connexion.The principal must be a login.

ALTER AUTHORIZATION pour les bases de donnéesALTER AUTHORIZATION for databases

S’APPLIQUE À : SQL Server 2019 (15.x)SQL Server 2019 (15.x), Azure SQL DatabaseAzure SQL Database.APPLIES TO: SQL Server 2019 (15.x)SQL Server 2019 (15.x), Azure SQL DatabaseAzure SQL Database.

Pour SQL Server :For SQL Server:

Conditions requises pour le nouveau propriétaire : Requirements for the new owner:
Le nouveau principal de propriétaire doit être l’un des éléments suivants :The new owner principal must be one of the following:

  • Un compte de connexion d’authentification SQL Server.A SQL Server authentication login.
  • Un compte de connexion d’authentification Windows représentant un utilisateur Windows (et non un groupe).A Windows authentication login representing a Windows user (not a group).
  • Un utilisateur Windows qui s’authentifie via un compte de connexion d’authentification Windows représentant un groupe Windows.A Windows user that authenticates through a Windows authentication login representing a Windows group.

Configuration requise pour la personne qui exécute l’instruction ALTER AUTHORIZATION :Requirements for the person executing the ALTER AUTHORIZATION statement:
Si vous n’êtes pas membre du rôle serveur fixe sysadmin, vous devez disposer au moins de l’autorisation TAKE OWNERSHIP sur la base de données et vous devez disposer de l’autorisation IMPERSONATE sur le nouveau compte de connexion de propriétaire.If you are not a member of the sysadmin fixed server role, you must have at least TAKE OWNERSHIP permission on the database, and must have IMPERSONATE permission on the new owner login.

Pour Azure SQL Database :For Azure SQL Database:

Conditions requises pour le nouveau propriétaire : Requirements for the new owner:
Le nouveau principal de propriétaire doit être l’un des éléments suivants :The new owner principal must be one of the following:

  • Un compte de connexion d’authentification SQL Server.A SQL Server authentication login.
  • Un utilisateur fédéré (et pas un groupe) présent dans Azure AD.A federated user (not a group) present in Azure AD.
  • Un utilisateur géré (et pas un groupe) ou une application présents dans Azure AD.A managed user (not a group) or an application present in Azure AD.

Si le nouveau propriétaire est un utilisateur Azure Active Directory, il ne peut pas exister comme utilisateur dans la base de données dans laquelle le nouveau propriétaire sera le nouveau propriétaire de la base de données (DBO).If the new owner is an Azure Active Directory user, it cannot exist as a user in the database where the new owner will become the new DBO. Un tel utilisateur Azure AD doit tout d’abord être supprimé de la base de données avant d’exécuter l’instruction ALTER AUTHORIZATION qui affecte la propriété de la base de données au nouvel utilisateur.Such Azure AD user must be first removed from the database before executing the ALTER AUTHORIZATION statement changing the database ownership to the new user. Pour plus d’informations sur la configuration d’utilisateur Azure AD avec SQL Database, consultez Connexion à SQL Database ou Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse) en utilisant l’authentification Azure AD.For more information about configuring an Azure Active Directory users with SQL Database, see Connecting to SQL Database or Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse) By Using Azure Active Directory Authentication.

Configuration requise pour la personne qui exécute l’instruction ALTER AUTHORIZATION :Requirements for the person executing the ALTER AUTHORIZATION statement:
Vous devez vous connecter à la base de données cible pour changer le propriétaire de cette base de données.You must connect to the target database to change the owner of that database.

Les types de comptes suivants peuvent changer le propriétaire d’une base de données.The following types of accounts can change the owner of a database.

  • Le compte de connexion au principal au niveau du service.The service-level principal login. (L’administrateur SQL Azure provisionné au moment de la création du serveur SQL Database.)(The SQL Azure administrator provisioned when the SQL Database server was created.)
  • L’administrateur Azure Active Directory pour Azure SQL Server.The Azure Active Directory administrator for the Azure SQL Server.
  • Le propriétaire actuel de la base de données.The current owner of the database.

Le tableau suivant récapitule les conditions requises :The following table summarizes the requirements:

ExécuteurExecutor CibleTarget RésultatsResult
Connexion d’authentification SQL ServerSQL Server Authentication login Connexion d’authentification SQL ServerSQL Server Authentication login SuccèsSuccess
Connexion d’authentification SQL ServerSQL Server Authentication login Utilisateur Azure ADAzure AD user ÉchecFail
Utilisateur Azure ADAzure AD user Connexion d’authentification SQL ServerSQL Server Authentication login SuccèsSuccess
Utilisateur Azure ADAzure AD user Utilisateur Azure ADAzure AD user SuccèsSuccess

Pour vérifier un propriétaire Azure AD de la base de données, exécutez la commande Transact-SQL suivante dans une base de données utilisateur (testdb dans cet exemple).To verify an Azure AD owner of the database execute the following Transact-SQL command in a user database (in this example testdb).

SELECT CAST(owner_sid as uniqueidentifier) AS Owner_SID   
FROM sys.databases   
WHERE name = 'testdb';  

La sortie est un identificateur (par exemple, 6D8B81F6-7C79-444C-8858-4AF896C03C67) qui correspond à l’ObjectID Azure AD assigné à richel@cqclinic.onmicrosoft.comThe output will be an identifier (such as 6D8B81F6-7C79-444C-8858-4AF896C03C67) which corresponds to Azure AD ObjectID assigned to richel@cqclinic.onmicrosoft.com
Quand un utilisateur de compte de connexion d’authentification SQL Server est propriétaire de la base de données, exécutez l’instruction suivante dans la base de données Master pour vérifier le propriétaire de la base de données :When a SQL Server authentication login user is the database owner, execute the following statement in the master database to verify the database owner:

SELECT d.name, d.owner_sid, sl.name   
FROM sys.databases AS d  
JOIN sys.sql_logins AS sl  
ON d.owner_sid = sl.sid;  
    

Bonne pratiqueBest practice

Au lieu d’utiliser des utilisateurs Azure AD comme propriétaires individuels de la base de données, utilisez un groupe Azure AD comme membre du rôle de base de données fixe db_owner.Instead of using Azure AD users as individual owners of the database, use an Azure AD group as a member of the db_owner fixed database role. Les étapes suivantes montrent comment configurer un compte de connexion désactivé comme propriétaire de la base de données et rendre un groupe Azure Active Directory (mydbogroup) membre du rôle db_owner.The following steps, show how to configure a disabled login as the database owner, and make an Azure Active Directory group (mydbogroup) a member of the db_owner role.

  1. Connectez-vous à SQL Server comme administrateur Azure AD, puis remplacez le propriétaire de la base de données par un compte de connexion d’authentification SQL Server désactivé.Login to SQL Server as Azure AD admin, and change the owner of the database to a disabled SQL Server authentication login. Par exemple, à partir de la base de données utilisateur, exécutez :For example, from the user database execute:
ALTER AUTHORIZATION ON database::testdb TO DisabledLogin;  
  1. Créez un groupe Azure AD qui doit être propriétaire de la base de données, puis ajoutez-le comme utilisateur à la base de données utilisateur.Create an Azure AD group that should own the database and add it as a user to the user database. Par exemple :For example:
CREATE USER [mydbogroup] FROM EXTERNAL PROVIDER;  
  1. Dans la base de données utilisateur, ajoutez l’utilisateur qui représente le groupe Azure AD au rôle de base de données fixe db_owner.In the user database add the user representing the Azure AD group, to the db_owner fixed database role. Par exemple :For example:
ALTER ROLE db_owner ADD MEMBER mydbogroup;  

Les membres de mydbogroup peuvent maintenant gérer de manière centralisée la base de données comme des membres du rôle db_owner.Now the mydbogroup members can centrally manage the database as members of the db_owner role.

  • Quand des membres de ce groupe sont supprimés du groupe Azure AD, ils perdent automatiquement les autorisations dbo pour cette base de données.When members of this group are removed from the Azure AD group, they automatically lose the dbo permissions for this database.
  • Même si de nouveaux membres sont ajoutés au groupe Azure AD mydbogroup, ils obtiennent automatiquement un accès dbo pour cette base de données.Similarly if new members are added to mydbogroup Azure AD group, they automatically gain the dbo access for this database.

Pour vérifier si un utilisateur spécifique dispose de l’autorisation dbo effective, demandez-lui d’exécuter l’instruction suivante :To check if a specific user has the effective dbo permission, have the user execute the following statement:

SELECT IS_MEMBER ('db_owner');  

La valeur de retour 1 indique que l’utilisateur est membre du rôle.A return value of 1 indicates the user is a member of the role.

AutorisationsPermissions

Il faut obligatoirement l'autorisation TAKE OWNERSHIP sur l'entité.Requires TAKE OWNERSHIP permission on the entity. Si le nouveau propriétaire n'est pas l'utilisateur qui exécute cette instruction, il faut aussi soit 1) l'autorisation IMPERSONATE sur le nouveau propriétaire s'il s'agit d'un utilisateur ou d'une connexion, soit 2) si le nouveau propriétaire est un rôle, l'appartenance à ce rôle ou l'autorisation ALTER sur le rôle, soit 3) si le nouveau propriétaire est un rôle d'application, l'autorisation ALTER sur le rôle d'application.If the new owner is not the user that is executing this statement, also requires either, 1) IMPERSONATE permission on the new owner if it is a user or login; or 2) if the new owner is a role, membership in the role, or ALTER permission on the role; or 3) if the new owner is an application role, ALTER permission on the application role.

ExemplesExamples

R.A. Transfert de la propriété d'une tableTransfer ownership of a table

L'exemple suivant transfère la propriété de la table Sprockets à l'utilisateur MichikoOsada.The following example transfers ownership of table Sprockets to user MichikoOsada. La table se trouve dans le schéma Parts.The table is located inside schema Parts.

ALTER AUTHORIZATION ON OBJECT::Parts.Sprockets TO MichikoOsada;    
GO    

La requête peut aussi se présenter de la façon suivante :The query could also look like the following:

ALTER AUTHORIZATION ON Parts.Sprockets TO MichikoOsada;    
GO    

Si le schéma d’objets n’est pas inclus en même temps que l’instruction, le Moteur de base de donnéesDatabase Engine recherche l’objet dans le schéma par défaut des utilisateurs.If the objects schema is not included as part of the statement, the Moteur de base de donnéesDatabase Engine will look for the object in the users default schema. Par exemple :For example:

ALTER AUTHORIZATION ON Sprockets TO MichikoOsada;    
ALTER AUTHORIZATION ON OBJECT::Sprockets TO MichikoOsada;    

B.B. Transfert de la propriété d'une vue au propriétaire du schémaTransfer ownership of a view to the schema owner

L'exemple suivant transfère la propriété de la vue ProductionView06 au propriétaire du schéma qui la contient.The following example transfers ownership the view ProductionView06 to the owner of the schema that contains it. La vue se trouve dans le schéma Production.The view is located inside schema Production.

ALTER AUTHORIZATION ON OBJECT::Production.ProductionView06 TO SCHEMA OWNER;    
GO    

C.C. Transfert de la propriété d'un schéma à un utilisateurTransfer ownership of a schema to a user

L'exemple suivant transfère la propriété du schéma SeattleProduction11 à l'utilisateur SandraAlayo.The following example transfers ownership of the schema SeattleProduction11 to user SandraAlayo.

ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo;    
GO    

D.D. Transfert de la propriété d'un point de terminaison à un compte de connexion SQL ServerTransfer ownership of an endpoint to a SQL Server login

L'exemple suivant transfère la propriété du point de terminaison CantabSalesServer1 à JaePak.The following example transfers ownership of endpoint CantabSalesServer1 to JaePak. Comme le point de terminaison est un élément sécurisable au niveau serveur, il ne peut être transféré qu'à un principal au niveau du serveur.Because the endpoint is a server-level securable, the endpoint can only be transferred to a server-level principal.

S’applique à : SQL Server 2008SQL Server 2008 et versions ultérieures.Applies to: SQL Server 2008SQL Server 2008 and later.

ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak;    
GO    

E.E. Changement du propriétaire d’une tableChanging the owner of a table

Chacun des exemples suivants remplace le propriétaire de la table Sprockets dans la base de données Parts par l’utilisateur de base de données MichikoOsada.Each of the following examples changes the owner of the Sprockets table in the Parts database to the database user MichikoOsada.

ALTER AUTHORIZATION ON Sprockets TO MichikoOsada;    
ALTER AUTHORIZATION ON dbo.Sprockets TO MichikoOsada;    
ALTER AUTHORIZATION ON OBJECT::Sprockets TO MichikoOsada;    
ALTER AUTHORIZATION ON OBJECT::dbo.Sprockets TO MichikoOsada;    

F.F. Changement du propriétaire d’une base de donnéesChanging the owner of a database

S’APPLIQUE À : SQL Server 2008SQL Server 2008 et versions ultérieures, Parallel Data WarehouseParallel Data Warehouse, SQL DatabaseSQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 and later, Parallel Data WarehouseParallel Data Warehouse, SQL DatabaseSQL Database.

L’exemple suivant remplace le propriétaire de la base de données Parts par le compte de connexion MichikoOsada.The following example change the owner of the Parts database to the login MichikoOsada.

ALTER AUTHORIZATION ON DATABASE::Parts TO MichikoOsada;    

G.G. Remplacement du propriétaire d’une base de données SQL par un utilisateur Azure ADChanging the owner of a SQL Database to an Azure AD User

Dans l’exemple suivant, un administrateur Azure Active Directory pour SQL Server d’une organisation avec un annuaire actif nommé cqclinic.onmicrosoft.com peut changer la propriété actuelle d’une base de données targetDB et nommer un utilisateur AAD richel@cqclinic.onmicorsoft.com nouveau propriétaire de la base de données à l’aide de la commande suivante :In the following example, an Azure Active Directory administrator for SQL Server in an organization with an active directory named cqclinic.onmicrosoft.com, can change the current ownership of a database targetDB and make an AAD user richel@cqclinic.onmicorsoft.com the new database owner using the following command:

ALTER AUTHORIZATION ON database::targetDB TO [rachel@cqclinic.onmicrosoft.com];   

Notez que les crochets autour du nom d’utilisateur doivent être utilisés pour les utilisateurs Azure AD.Note that for Azure AD users the brackets around the user name must be used.

Voir aussiSee Also

OBJECTPROPERTY (Transact-SQL) OBJECTPROPERTY (Transact-SQL)
TYPEPROPERTY (Transact-SQL) TYPEPROPERTY (Transact-SQL)
EVENTDATA (Transact-SQL)EVENTDATA (Transact-SQL)