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

GILT FÜR: jaSQL Server (ab 2008) jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data WarehouseAPPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Ändert den Besitz eines sicherungsfähigen Elements.Changes the ownership of a securable.

Themenlinksymbol Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

-- 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 SQL Data Warehouse  
  
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    
}    

ArgumenteArguments

<class_type> ist die sicherungsfähige Klasse der Entität, für die der Besitzer geändert wird.<class_type> Is the securable class of the entity for which the owner is being changed. OBJECT ist der Standardwert.OBJECT is the default.

OBJECTOBJECT GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database, Azure SQL Data Warehouse, Parallel Data WarehouseParallel Data WarehouseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database, Azure SQL Data Warehouse, Parallel Data WarehouseParallel Data Warehouse.
ASSEMBLYASSEMBLY GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database.
ASYMMETRIC KEYASYMMETRIC KEY GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database.
AVAILABILITY GROUPAVAILABILITY GROUP GILT FÜR: SQL Server 2012 bis SQL Server 2017SQL Server 2017APPLIES TO: SQL Server 2012 through SQL Server 2017SQL Server 2017.
CERTIFICATECERTIFICATE GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database.
CONTRACTCONTRACT GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
DATABASEDATABASE GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database. Weitere Informationen finden Sie weiter unten im Abschnitt ALTER AUTHORIZATION für Datenbanken.For more information,see ALTER AUTHORIZATION FOR databases section below.
ENDPOINTENDPOINT GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
FULLTEXT CATALOGFULLTEXT CATALOG GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database.
FULLTEXT STOPLISTFULLTEXT STOPLIST GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database.
MESSAGE TYPEMESSAGE TYPE GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
REMOTE SERVICE BINDINGREMOTE SERVICE BINDING GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
ROLEROLE GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database.
ROUTEROUTE GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
SCHEMASCHEMA GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database, Azure SQL Data Warehouse, Parallel Data WarehouseParallel Data WarehouseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database, Azure SQL Data Warehouse, Parallel Data WarehouseParallel Data Warehouse.
SEARCH PROPERTY LISTSEARCH PROPERTY LIST GILT FÜR: SQL Server 2012 (11.x)SQL Server 2012 (11.x) bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL DatabaseAPPLIES TO: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database.
SERVER ROLESERVER ROLE GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
SERVICESERVICE GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
SYMMETRIC KEYSYMMETRIC KEY GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database.
TYPETYPE GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database.
XML SCHEMA COLLECTIONXML SCHEMA COLLECTION GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database.

entity_name entity_name
Der Name der Entität.Is the name of the entity.

principal_name | SCHEMA OWNERprincipal_name | SCHEMA OWNER
Name des Sicherheitsprinzipals, der die Entität besitzt.Name of the security principal that will own the entity. Datenbankobjekte müssen im Besitz eines Datenbankprinzipals sein, also ein Datenbankbenutzer oder eine Datenbankrolle.Database objects must be owned by a database principal; a database user or role. Serverobjekte (beispielsweise Datenbanken) müssen im Besitz eines Serverprinzipals (eines Anmeldenamens) sein.Server objects (such as databases) must be owned by a server principal (a login). Geben Sie SCHEMA OWNER als principal_name an, um anzugeben, dass das Objekt im Besitz des Prinzipals sein sollte, der das Schema des Objekts besitzt.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.

RemarksRemarks

Mit ALTER AUTHORIZATION kann der Besitz einer Entität, die einen Besitzer aufweist, geändert werden.ALTER AUTHORIZATION can be used to change the ownership of any entity that has an owner. Der Besitz von in der Datenbank enthaltenen Entitäten kann an jeden Prinzipal auf Datenbankebene übertragen werden.Ownership of database-contained entities can be transferred to any database-level principal. Der Besitz von Entitäten auf Serverebene kann nur an Prinzipale auf Serverebene übertragen werden.Ownership of server-level entities can be transferred only to server-level principals.

Wichtig

Ab SQL Server 2005 (9.x)SQL Server 2005 (9.x) kann der Benutzer Besitzer eines Objekts oder Typs sein, das bzw. der in einem Schema enthalten ist, dessen Besitzer ein anderer Datenbankbenutzer ist.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. Dieses Verhalten unterscheidet sich von früheren Versionen von SQL ServerSQL Server.This is a change of behavior from earlier versions of SQL ServerSQL Server. Weitere Informationen finden Sie unter OBJECTPROPERTY (Transact-SQL) und TYPEPROPERTY (Transact-SQL).For more information, see OBJECTPROPERTY (Transact-SQL) and TYPEPROPERTY (Transact-SQL).

Der Besitz der folgenden in einem Schema enthaltenen Entitäten vom Typ "object" kann übertragen werden: Tabellen, Sichten, Funktionen, Prozeduren, Warteschlangen und Synonyme.Ownership of the following schema-contained entities of type "object" can be transferred: tables, views, functions, procedures, queues, and synonyms.

Der Besitz der folgenden Entitäten kann nicht übertragen werden: Verbindungsserver, Statistiken, Einschränkungen, Regeln, Standardwerte, Trigger, Service BrokerService Broker-Warteschlangen, Anmeldeinformationen, Partitionsfunktionen, Partitionsschemas, Datenbank-Hauptschlüssel, Diensthauptschlüssel und Ereignisbenachrichtigungen.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.

Der Besitz von Mitgliedern der folgenden sicherungsfähigen Klassen kann nicht übertragen werden: Server, Anmeldename, Benutzer, Anwendungsrolle und Spalte.Ownership of members of the following securable classes cannot be transferred: server, login, user, application role, and column.

Die SCHEMA OWNER-Option ist nur gültig, wenn Sie den Besitz einer in einem Schema enthaltenen Entität übertragen.The SCHEMA OWNER option is only valid when you are transferring ownership of a schema-contained entity. Mit SCHEMA OWNER wird der Besitz der Entität an den Besitzer des Schemas übertragen, in dem sie sich befindet.SCHEMA OWNER will transfer ownership of the entity to the owner of the schema in which it resides. Nur Entitäten der Klasse OBJECT, TYPE oder XML SCHEMA COLLECTION sind in Schemas enthalten.Only entities of class OBJECT, TYPE, or XML SCHEMA COLLECTION are schema-contained.

Falls es sich bei der Zielentität nicht um eine Datenbank handelt und die Entität an einen neuen Besitzer übertragen wird, werden alle Berechtigungen für das Ziel gelöscht.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.

Achtung

Das Verhalten der Schemas in SQL Server 2005 (9.x)SQL Server 2005 (9.x) unterscheidet sich von dem in früheren Versionen von 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. Code, in dem vorausgesetzt wird, dass Schemas Datenbankbenutzern entsprechen, gibt möglicherweise nicht die richtigen Ergebnisse zurück.Code that assumes that schemas are equivalent to database users may not return correct results. Alte Katalogsichten, einschließlich „sysobjects“, sollten nicht in einer Datenbank verwendet werden, in der bereits irgendeine der folgenden DDL-Anweisungen verwendet wurde: 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. In einer Datenbank, in der jemals eine dieser Anweisungen verwendet wurde, müssen Sie die neuen Katalogsichten verwenden.In a database in which any of these statements has ever been used, you must use the new catalog views. In den neuen Katalogsichten wird die Trennung zwischen Prinzipalen und Schemas berücksichtigt, die in SQL Server 2005 (9.x)SQL Server 2005 (9.x) eingeführt wurde.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). Weitere Informationen zu Katalogansichten finden Sie unter Catalog Views (Transact-SQL) (Katalogansichten (Transact-SQL)).For more information about catalog views, see Catalog Views (Transact-SQL).

Beachten Sie dabei außerdem Folgendes:Also, note the following:

Wichtig

Die einzig zuverlässige Möglichkeit, den Besitzer eines Objekts zu finden, besteht darin, die sys.objects-Katalogsicht abzufragen.The only reliable way to find the owner of a object is to query the sys.objects catalog view. Die einzige zuverlässige Möglichkeit, den Besitzer eines Typs zu finden, besteht in der Verwendung der TYPEPROPERTY-Funktion.The only reliable way to find the owner of a type is to use the TYPEPROPERTY function.

Spezialfälle und BedingungenSpecial Cases and Conditions

In der folgenden Tabelle sind Spezialfälle, Ausnahmen und Bedingungen aufgeführt, die beim Ändern der Autorisierung gelten.The following table lists special cases, exceptions, and conditions that apply to altering authorization.

ClassClass BedingungCondition
OBJECTOBJECT Der Besitz von Triggern, Einschränkungen, Regeln, Standardwerten, Statistiken, Systemobjekten, Warteschlangen, indizierten Sichten oder Tabellen mit indizierten Sichten kann nicht geändert werden.Cannot change ownership of triggers, constraints, rules, defaults, statistics, system objects, queues, indexed views, or tables with indexed views.
SCHEMASCHEMA Wenn der Besitz übertragen wird, werden Berechtigungen für in einem Schema enthaltene Objekte, die keine expliziten Besitzer aufweisen, gelöscht.When ownership is transferred, permissions on schema-contained objects that do not have explicit owners will be dropped. Der Besitzer von sys, dbo oder information_schema kann nicht geändert werden.Cannot change the owner of sys, dbo, or information_schema.
TYPETYPE Der Besitz eines TYPE-Objekts, das zu sys oder information_schema gehört, kann nicht geändert werden.Cannot change ownership of a TYPE that belongs to sys or information_schema.
CONTRACT, MESSAGE TYPE oder SERVICECONTRACT, MESSAGE TYPE, or SERVICE Der Besitz von Systementitäten kann nicht geändert werden.Cannot change ownership of system entities.
SYMMETRIC KEYSYMMETRIC KEY Der Besitz von globalen temporären Schlüsseln kann nicht geändert werden.Cannot change ownership of global temporary keys.
CERTIFICATE oder ASYMMETRIC KEYCERTIFICATE or ASYMMETRIC KEY Der Besitz dieser Entitäten kann nicht an eine Rolle oder Gruppe übertragen werden.Cannot transfer ownership of these entities to a role or group.
ENDPOINTENDPOINT Der Prinzipal muss ein Anmeldename sein.The principal must be a login.

ALTER AUTHORIZATION für DatenbankenALTER AUTHORIZATION for databases

GILT FÜR: SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL DatabaseAPPLIES TO: SQL Server 2017SQL Server 2017, Azure SQL-DatenbankAzure SQL Database.

Für SQL Server:For SQL Server:

Anforderungen für den neuen Besitzer: Requirements for the new owner:
Der neue Besitzerprinzipal muss einer der folgenden sein:The new owner principal must be one of the following:

  • Ein Anmeldename für die SQL Server-AuthentifizierungA SQL Server authentication login.
  • Ein Anmeldename für die Windows-Authentifizierung, der einen Windows-Benutzer (keine Gruppe) darstelltA Windows authentication login representing a Windows user (not a group).
  • Ein Windows-Benutzer, der sich über einen Anmeldenamen für die Windows-Authentifizierung authentifiziert, der eine Windows-Gruppe darstelltA Windows user that authenticates through a Windows authentication login representing a Windows group.

Anforderungen an die Person, die die ALTER AUTHORIZATION-Anweisung ausführt:Requirements for the person executing the ALTER AUTHORIZATION statement:
Wenn Sie kein Mitglied der festen Serverrolle sysadmin sind, benötigen Sie mindestens die Berechtigung TAKE OWNERSHIP für die Datenbank und die Berechtigung IMPERSONATE für den neuen Besitzeranmeldenamen.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.

Für Azure SQL-Datenbank:For Azure SQL Database:

Anforderungen für den neuen Besitzer: Requirements for the new owner:
Der neue Besitzerprinzipal muss einer der folgenden sein:The new owner principal must be one of the following:

  • Ein Anmeldename für die SQL Server-AuthentifizierungA SQL Server authentication login.
  • Ein Verbundbenutzer (keine Gruppe) in Azure ADA federated user (not a group) present in Azure AD.
  • Ein verwalteter Benutzer (keine Gruppe) oder eine Anwendung in Azure ADA managed user (not a group) or an application present in Azure AD.

Hinweis

Wenn der neue Besitzer ein Azure Active Directory-Benutzer ist, darf dieser Benutzer nicht in der Datenbank vorhanden sein, für die der neue Besitzer der DBO werden soll.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. Der Azure AD-Benutzer muss zunächst aus der Datenbank entfernt werden, bevor die ALTER AUTHORIZATION-Anweisung ausgeführt wird, die den Datenbankbesitz auf den neuen Benutzer überträgt.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. Weitere Informationen zum Konfigurieren eines Azure Active Directory-Benutzers finden Sie unter Verwenden der Azure Active Directory-Authentifizierung für die Authentifizierung mit SQL-Datenbank oder SQL Data Warehouse.For more information about configuring an Azure Active Directory users with SQL Database, see Connecting to SQL Database or SQL Data Warehouse By Using Azure Active Directory Authentication.

Anforderungen an die Person, die die ALTER AUTHORIZATION-Anweisung ausführt:Requirements for the person executing the ALTER AUTHORIZATION statement:
Sie müssen eine Verbindung zur Zieldatenbank herstellen, um den Besitzer der Datenbank zu ändern.You must connect to the target database to change the owner of that database.

Die folgenden Kontotypen können den Besitzer einer Datenbank ändern.The following types of accounts can change the owner of a database.

  • Der Prinzipalanmeldename auf ServerebeneThe service-level principal login. (Der SQL Azure-Administrator, der bei der Erstellung des SQL-Datenbankservers bereitgestellt wird.)(The SQL Azure administrator provisioned when the SQL Database server was created.)
  • Der Active Directory-Administrator für den Azure SQL-ServerThe Azure Active Directory administrator for the Azure SQL Server.
  • Der aktuelle Besitzer der DatenbankThe current owner of the database.

In der folgenden Tabelle werden die Anforderungen zusammengefasst:The following table summarizes the requirements:

Ausführendes KontoExecutor ZielTarget ErgebnisResult
Ein Anmeldename für die SQL Server-AuthentifizierungSQL Server Authentication login Ein Anmeldename für die SQL Server-AuthentifizierungSQL Server Authentication login SuccessSuccess
Ein Anmeldename für die SQL Server-AuthentifizierungSQL Server Authentication login Azure AD-BenutzerAzure AD user FehlerFail
Azure AD-BenutzerAzure AD user Ein Anmeldename für die SQL Server-AuthentifizierungSQL Server Authentication login SuccessSuccess
Azure AD-BenutzerAzure AD user Azure AD-BenutzerAzure AD user SuccessSuccess

Um den Azure AD-Besitzer der Datenbank zu bestätigen, führen Sie den folgenden Transact-SQL-Befehl in einer Benutzerdatenbank aus (in diesem Beispiel testdb).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';  

Die Ausgabe besteht aus einem Bezeichner (z.B. 6D8B81F6-7C79-444C-8858-4AF896C03C67), der der richel@cqclinic.onmicrosoft.com zugewiesenen Azure AD-ObjectID entspricht.The output will be an identifier (such as 6D8B81F6-7C79-444C-8858-4AF896C03C67) which corresponds to Azure AD ObjectID assigned to richel@cqclinic.onmicrosoft.com
Wenn ein Benutzeranmeldename für die SQL Server-Authentifizierung der Datenbankbesitzer ist, führen Sie die folgende Anweisung in der Masterdatenbank aus, um den Datenbankbesitzer zu bestätigen: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;  
    

Bewährte MethodenBest practice

Statt Azure AD-Benutzer als einzelne Datenbankbesitzer zu verwenden, verwenden Sie eine Azure AD-Gruppe als Mitglied der festen Datenbankrolle 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. In den folgenden Schritten wird gezeigt, wie ein deaktivierter Anmeldename als Datenbankbesitzer und eine Azure Active Directory-Gruppe (mydbogroup) als Mitglied der db_owner-Rolle konfiguriert wird.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. Melden Sie sich als Azure AD-Administrator bei SQL Server an, und ändern Sie den Datenbankbesitzer in einen deaktivierten Anmeldenamen für die SQL Server-Authentifizierung.Login to SQL Server as Azure AD admin, and change the owner of the database to a disabled SQL Server authentication login. Führen Sie über die Benutzerdatenbank z.B. Folgendes aus:For example, from the user database execute:
ALTER AUTHORIZATION ON database::testdb TO DisabledLogin;  
  1. Erstellen Sie eine Azure AD-Gruppe, die Datenbankbesitzer werden soll, und fügen Sie sie als Benutzer zur Benutzerdatenbank hinzu.Create an Azure AD group that should own the database and add it as a user to the user database. Beispiel:For example:
CREATE USER [mydbogroup] FROM EXTERNAL PROVIDER;  
  1. Fügen Sie den Benutzer, der die Azure AD-Gruppe darstellt, in der Benutzerdatenbank zur festen Datenbankrolle db_owner hinzu.In the user database add the user representing the Azure AD group, to the db_owner fixed database role. Beispiel:For example:
ALTER ROLE db_owner ADD MEMBER mydbogroup;  

Nun können die mydbogroup-Mitglieder die Datenbank als Mitglieder der db_owner-Rolle zentral verwalten.Now the mydbogroup members can centrally manage the database as members of the db_owner role.

  • Wenn Mitglieder dieser Gruppe aus der Azure AD-Gruppe entfernt werden, verlieren sie automatisch die DBO-Berechtigungen für diese Datenbank.When members of this group are removed from the Azure AD group, they automatically loose the dbo permissions for this database.
  • Auch wenn neue Mitglieder zur mydbogroup-Azure AD-Gruppe hinzugefügt werden, erhalten sie automatisch DBO-Zugriff auf diese Datenbank.Similarly if new members are added to mydbogroup Azure AD group, they automatically gain the dbo access for this database.

Um festzustellen, ob ein bestimmter Benutzer über die effektive DBO-Berechtigung verfügt, muss der Benutzer folgende Anweisung ausführen:To check if a specific user has the effective dbo permission, have the user execute the following statement:

SELECT IS_MEMBER ('db_owner');  

Lautet der Rückgabewert 1, bedeutet dies, dass der Benutzer ein Mitglied der Rolle ist.A return value of 1 indicates the user is a member of the role.

BerechtigungenPermissions

Erfordert die TAKE OWNERSHIP-Berechtigung für die Entität.Requires TAKE OWNERSHIP permission on the entity. Falls der neue Besitzer nicht der Benutzer ist, der diese Anweisung ausführt, ist zudem eine der folgenden Berechtigungen erforderlich: 1) IMPERSONATE-Berechtigung für den neuen Besitzer, falls es sich um einen Benutzer oder einen Anmeldenamen handelt. Oder: 2) Falls der neue Besitzer eine Rolle ist, Mitgliedschaft in der Rolle oder ALTER-Berechtigung in der Rolle. Oder: 3) Falls der neue Besitzer eine Anwendungsrolle ist, ALTER-Berechtigung in der Anwendungsrolle.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.

BeispieleExamples

A.A. Übertragen des Besitzes einer TabelleTransfer ownership of a table

Im folgenden Beispiel wird der Besitz der Sprockets-Tabelle an den Benutzer MichikoOsada übertragen.The following example transfers ownership of table Sprockets to user MichikoOsada. Die Tabelle befindet sich im Parts-Schema.The table is located inside schema Parts.

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

Die Abfrage kann auch folgendermaßen aussehen:The query could also look like the following:

ALTER AUTHORIZATION ON Parts.Sprockets TO MichikoOsada;    
GO    

Wenn das Objektschema kein Bestandteil der Anweisung ist, sucht die Datenbank-EngineDatabase Engine das Objekt im Standardschema des Benutzers.If the objects schema is not included as part of the statement, the Datenbank-EngineDatabase Engine will look for the object in the users default schema. Beispiel:For example:

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

B.B. Übertragen des Besitzes einer Sicht an den SchemabesitzerTransfer ownership of a view to the schema owner

Im folgenden Beispiel wird der Besitz der ProductionView06-Sicht an den Besitzer des Schemas übertragen, das sie enthält.The following example transfers ownership the view ProductionView06 to the owner of the schema that contains it. Die Sicht befindet sich im Production-Schema.The view is located inside schema Production.

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

C.C. Übertragen des Besitzes eines Schemas an einen BenutzerTransfer ownership of a schema to a user

Im folgenden Beispiel wird der Besitz des SeattleProduction11-Schemas an den Benutzer SandraAlayo übertragen.The following example transfers ownership of the schema SeattleProduction11 to user SandraAlayo.

ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo;    
GO    

D.D. Übertragen des Besitzes für einen Endpunkt an einen SQL Server-AnmeldenamenTransfer ownership of an endpoint to a SQL Server login

Im folgenden Beispiel wird der Besitz des CantabSalesServer1-Endpunkts auf JaePak übertragen.The following example transfers ownership of endpoint CantabSalesServer1 to JaePak. Da es sich bei dem Endpunkt um ein sicherungsfähiges Element auf Serverebene handelt, kann der Endpunkt nur an einen Prinzipal auf Serverebene übertragen werden.Because the endpoint is a server-level securable, the endpoint can only be transferred to a server-level principal.

Gilt für: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak;    
GO    

E.E. Ändern eines TabellenbesitzersChanging the owner of a table

In jedem der folgenden Beispiele wird der Besitzer der Sprockets-Tabelle in der Parts-Datenbank in den Datenbankbenutzer MichikoOsada geändert.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. Ändern eines DatenbankbesitzersChanging the owner of a database

GILT FÜR: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017, Parallel Data WarehouseParallel Data Warehouse, SQL-DatenbankSQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Parallel Data WarehouseParallel Data Warehouse, SQL-DatenbankSQL Database.

Im folgenden Beispiel wird der Besitzer der Parts-Datenbank in den Anmeldenamen MichikoOsada geändert.The following example change the owner of the Parts database to the login MichikoOsada.

ALTER AUTHORIZATION ON DATABASE::Parts TO MichikoOsada;    

G.G. Ändern des Besitzers einer SQL-Datenbank in einen Azure AD-BenutzerChanging the owner of a SQL Database to an Azure AD User

Im folgenden Beispiel kann ein Azure Active Directory-Administrator für SQL Server in einer Organisation mit einer Active Directory namens cqclinic.onmicrosoft.com den aktuellen Besitzer der Datenbank targetDB ändern und den AAD-Benutzer richel@cqclinic.onmicorsoft.com zum neuen Datenbankbesitzer machen. Dazu muss er den folgenden Befehl ausführen: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];   

Beachten Sie, dass die Klammern um den Benutzernamen bei Azure AD-Benutzern verwendet werden müssen.Note that for Azure AD users the brackets around the user name must be used.

Weitere InformationenSee Also

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