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

適用対象: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

セキュリティ保護可能なエンティティの所有権を変更します。Changes the ownership of a securable.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

-- 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    
}    

引数Arguments

<class_type> は、所有者を変更するエンティティのセキュリティ保護可能なクラスを指定します。<class_type> Is the securable class of the entity for which the owner is being changed. 既定値は OBJECT です。OBJECT is the default.

OBJECTOBJECT 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL Database、Azure SQL Data Warehouse、Parallel Data WarehouseParallel Data WarehouseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database, Azure SQL Data Warehouse, Parallel Data WarehouseParallel Data Warehouse.
ASSEMBLYASSEMBLY 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database.
ASYMMETRIC KEYASYMMETRIC KEY 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database.
AVAILABILITY GROUPAVAILABILITY GROUP 適用対象:SQL Server 2012 から SQL Server 2019SQL Server 2019APPLIES TO: SQL Server 2012 through SQL Server 2019SQL Server 2019.
CERTIFICATECERTIFICATE 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database.
CONTRACTCONTRACT 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019.
DATABASEDATABASE 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database. 詳しくは、後の「データベースに対する ALTER AUTHORIZATION」をご覧ください。For more information,see ALTER AUTHORIZATION FOR databases section below.
ENDPOINTENDPOINT 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019.
FULLTEXT CATALOGFULLTEXT CATALOG 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database.
FULLTEXT STOPLISTFULLTEXT STOPLIST 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database.
MESSAGE TYPEMESSAGE TYPE 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019.
REMOTE SERVICE BINDINGREMOTE SERVICE BINDING 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019.
ROLEROLE 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database.
ROUTEROUTE 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019.
SCHEMASCHEMA 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL Database、Azure SQL Data Warehouse、Parallel Data WarehouseParallel Data WarehouseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database, Azure SQL Data Warehouse, Parallel Data WarehouseParallel Data Warehouse.
SEARCH PROPERTY LISTSEARCH PROPERTY LIST 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x)SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database.
SERVER ROLESERVER ROLE 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019.
SERVICESERVICE 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019.
SYMMETRIC KEYSYMMETRIC KEY 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database.
TYPETYPE 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database.
XML SCHEMA COLLECTIONXML SCHEMA COLLECTION 適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database.

entity_name entity_name
エンティティの名前を指定します。Is the name of the entity.

principal_name | SCHEMA OWNERprincipal_name | SCHEMA OWNER
エンティティの所有者となるセキュリティ プリンシパルの名前。Name of the security principal that will own the entity. データベース オブジェクトはデータベース プリンシパル (データベース ユーザーまたはデータベース ロール) が所有する必要があります。Database objects must be owned by a database principal; a database user or role. サーバー オブジェクト (データベースなど) はサーバー プリンシパル (ログイン) が所有する必要があります。Server objects (such as databases) must be owned by a server principal (a login). SCHEMA OWNERprincipal_name として指定して、オブジェクトのスキーマを所有するプリンシパルがオブジェクトを所有する必要があることを示します。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

ALTER AUTHORIZATION は、所有者が存在するエンティティの所有権を変更するときに使用できます。ALTER AUTHORIZATION can be used to change the ownership of any entity that has an owner. データベースに含まれるエンティティの所有権は、任意のデータベース レベルのプリンシパルに譲渡できます。Ownership of database-contained entities can be transferred to any database-level principal. サーバー レベルのエンティティの所有権は、サーバー レベルのプリンシパルのみに譲渡できます。Ownership of server-level entities can be transferred only to server-level principals.

重要

SQL Server 2005 (9.x)SQL Server 2005 (9.x) 以降では、ユーザーは他のデータベース ユーザーが所有するスキーマに含まれる OBJECT または TYPE を所有できます。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. これは、以前のバージョンの SQL ServerSQL Serverの動作から変更されています。This is a change of behavior from earlier versions of SQL ServerSQL Server. 詳しくは、「OBJECTPROPERTY (Transact-SQL)」および「TYPEPROPERTY (Transact-SQL)」をご覧ください。For more information, see OBJECTPROPERTY (Transact-SQL) and TYPEPROPERTY (Transact-SQL).

スキーマに含まれるエンティティのうち、種類が "オブジェクト" のエンティティ (テーブル、ビュー、関数、プロシージャ、キュー、およびシノニム) の所有権は譲渡できます。Ownership of the following schema-contained entities of type "object" can be transferred: tables, views, functions, procedures, queues, and synonyms.

リンク サーバー、統計、制約、ルール、デフォルト、トリガー、Service BrokerService Broker キュー、資格情報、パーティション関数、パーティション構成、データベース マスター キー、サービス マスター キー、およびイベント通知の各エンティティの所有権は譲渡できません。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.

セキュリティ保護可能なリソース クラス (サーバー、ログイン、ユーザー、アプリケーション ロール、および列) のメンバーの所有権は譲渡できません。Ownership of members of the following securable classes cannot be transferred: server, login, user, application role, and column.

SCHEMA OWNER オプションは、スキーマに含まれるエンティティの所有権を譲渡する場合にのみ有効です。The SCHEMA OWNER option is only valid when you are transferring ownership of a schema-contained entity. SCHEMA OWNER を使用すると、エンティティの所有権は、所属するスキーマの所有者に譲渡されます。SCHEMA OWNER will transfer ownership of the entity to the owner of the schema in which it resides. スキーマに含まれるのは、OBJECT、TYPE、または XML SCHEMA COLLECTION クラスのエンティティのみです。Only entities of class OBJECT, TYPE, or XML SCHEMA COLLECTION are schema-contained.

対象のエンティティがデータベース以外であり、エンティティを新しい所有者に譲渡する場合は、すべての権限が削除されます。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.

注意事項

SQL Server 2005 (9.x)SQL Server 2005 (9.x) でのスキーマの動作は、以前のバージョンの 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 that assumes that schemas are equivalent to database users may not return correct results. 以下の DDL ステートメントが使用されているデータベースでは、sysobjects などの古いカタログ ビューを使用してはいけません: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 a database in which any of these statements has ever been used, you must use the new catalog views. 新しいカタログ ビューでは、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). カタログ ビューの詳細については、「カタログ ビュー (Transact-SQL)」を参照してください。For more information about catalog views, see Catalog Views (Transact-SQL).

また、次の点も注意してください。Also, note the following:

重要

オブジェクトの所有者を調べる唯一の信頼性のある方法は、sys.objects カタログ ビューに対するクエリを実行する方法です。The only reliable way to find the owner of a object is to query the sys.objects catalog view. 型の所有者を調べる唯一の信頼性のある方法は、TYPEPROPERTY 関数を使用する方法です。The only reliable way to find the owner of a type is to use the TYPEPROPERTY function.

特殊ケースと条件Special Cases and Conditions

次の表は、権限を変更する場合の特殊ケースと例外、および条件の一覧です。The following table lists special cases, exceptions, and conditions that apply to altering authorization.

クラスClass 条件Condition
OBJECTOBJECT トリガー、制約、ルール、デフォルト、統計、システム オブジェクト、キュー、インデックス付きビュー、またはインデックス付きビューのあるテーブルの所有権は変更できません。Cannot change ownership of triggers, constraints, rules, defaults, statistics, system objects, queues, indexed views, or tables with indexed views.
SCHEMASCHEMA 所有権を譲渡すると、スキーマに含まれるオブジェクトの所有者が明示的に指定されていない場合は、そのオブジェクトに対する権限が削除されます。When ownership is transferred, permissions on schema-contained objects that do not have explicit owners will be dropped. sys、dbo、または information_schema の所有者は変更できません。Cannot change the owner of sys, dbo, or information_schema.
TYPETYPE sys または information_schema に属する TYPE の所有権は変更できません。Cannot change ownership of a TYPE that belongs to sys or information_schema.
CONTRACT、MESSAGE TYPE、SERVICECONTRACT, MESSAGE TYPE, or SERVICE システム エンティティの所有権は変更できません。Cannot change ownership of system entities.
SYMMETRIC KEYSYMMETRIC KEY グローバル一時キーの所有権は変更できません。Cannot change ownership of global temporary keys.
CERTIFICATE または ASYMMETRIC KEYCERTIFICATE or ASYMMETRIC KEY これらのエンティティの所有権をロールまたはグループに譲渡することはできません。Cannot transfer ownership of these entities to a role or group.
ENDPOINTENDPOINT プリンシパルは、ログインであることが必要です。The principal must be a login.

データベースに対する ALTER AUTHORIZATIONALTER AUTHORIZATION for databases

適用対象: SQL Server 2019SQL Server 2019Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL Server 2019SQL Server 2019, Azure SQL データベースAzure SQL Database.

SQL Server の場合:For SQL Server:

新しい所有者の要件: Requirements for the new owner:
新しい所有者プリンシパルは、次のいずれかである必要があります。The new owner principal must be one of the following:

  • SQL サーバー認証ログイン。A SQL Server authentication login.
  • Windows ユーザー (グループではなく) を表す Windows 認証ログイン。A Windows authentication login representing a Windows user (not a group).
  • Windows グループを表す Windows 認証ログインを使って認証を行う Windows ユーザー。A Windows user that authenticates through a Windows authentication login representing a Windows group.

ALTER AUTHORIZATION ステートメントを実行するユーザーの要件:Requirements for the person executing the ALTER AUTHORIZATION statement:
sysadmin 固定サーバー ロールのメンバーではないユーザーの場合は、データベースに対する TAKE OWNERSHIP アクセス許可以上と、新しい所有者ログインに対する IMPERSONATE アクセス許可が必要です。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.

Azure SQL Database の場合:For Azure SQL Database:

新しい所有者の要件: Requirements for the new owner:
新しい所有者プリンシパルは、次のいずれかである必要があります。The new owner principal must be one of the following:

  • SQL サーバー認証ログイン。A SQL Server authentication login.
  • Azure AD 内に存在するフェデレーション ユーザー (グループではなく)。A federated user (not a group) present in Azure AD.
  • Azure AD 内に存在するマネージド ユーザー (グループではなく) またはアプリケーション。A managed user (not a group) or an application present in Azure AD.

注意

新しい所有者が Azure Active Directory ユーザーの場合は、新しい所有者が新しい 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. このような Azure AD ユーザーは、ALTER AUTHORIZATION ステートメントを実行して新しいユーザーにデータベース所有権を変更する前にまず、データベースから削除する必要があります。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. SQL Database での Azure Active Directory ユーザーの構成について詳しくは、Azure Active Directory 認証を使用して SQL Database または 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.

ALTER AUTHORIZATION ステートメントを実行するユーザーの要件:Requirements for the person executing the ALTER AUTHORIZATION statement:
データベースの所有者を変更するには、そのデータベースに接続する必要があります。You must connect to the target database to change the owner of that database.

次の種類のアカウントは、データベースの所有者を変更できます。The following types of accounts can change the owner of a database.

  • サーバー レベルのプリンシパル ログインThe service-level principal login. (SQL Database サーバー作成時にプロビジョニングされた SQL Azure 管理者)。(The SQL Azure administrator provisioned when the SQL Database server was created.)
  • Azure SQL Server の Azure Active Directory 管理者。The Azure Active Directory administrator for the Azure SQL Server.
  • データベースの現在の所有者。The current owner of the database.

次の表は要件をまとめたものです。The following table summarizes the requirements:

実行者Executor 移行先Target 結果Result
SQL サーバー認証ログインSQL Server Authentication login SQL サーバー認証ログインSQL Server Authentication login 成功Success
SQL サーバー認証ログインSQL Server Authentication login Azure AD ユーザーAzure AD user 失敗Fail
Azure AD ユーザーAzure AD user SQL サーバー認証ログインSQL Server Authentication login 成功Success
Azure AD ユーザーAzure AD user Azure AD ユーザーAzure AD user 成功Success

データベースの Azure AD 所有者を確認するには、ユーザー データベース (この例では testdb) で次の Transact-SQL コマンドを実行します。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';  

出力は、richel@cqclinic.onmicrosoft.com に割り当てられている Azure AD ObjectID に対応する識別子 (6D8B81F6-7C79-444C-8858-4AF896C03C67 など) です。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
SQL Server 認証ログイン ユーザーがデータベース所有者である場合、データベースの所有者を確認するには、master データベースで次のステートメントを実行します。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;  
    

ベスト プラクティスBest practice

Azure AD ユーザーをデータベースの個人所有者として使う代わりに、Azure AD グループを 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. 次の手順では、データベース所有者として無効なログインを構成し、Azure Active Directory グループ (mydbogroup) を 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. Azure AD 管理者として SQL Server にログインし、データベースの所有者を無効化された SQL Server 認証ログインに変更ます。Login to SQL Server as Azure AD admin, and change the owner of the database to a disabled SQL Server authentication login. たとえば、ユーザー データベースから次のコマンドを実行します。For example, from the user database execute:
ALTER AUTHORIZATION ON database::testdb TO DisabledLogin;  
  1. データベースを所有する Azure AD グループを作成し、そのグループをユーザー データベースにユーザーとして追加します。Create an Azure AD group that should own the database and add it as a user to the user database. 例:For example:
CREATE USER [mydbogroup] FROM EXTERNAL PROVIDER;  
  1. ユーザー データベースで、Azure AD グループを表すユーザーを、db_owner 固定データベース ロールに追加します。In the user database add the user representing the Azure AD group, to the db_owner fixed database role. 例:For example:
ALTER ROLE db_owner ADD MEMBER mydbogroup;  

これで、mydbogroup のメンバーは、db_owner ロールのメンバーとしてデータベースを集中管理できます。Now the mydbogroup members can centrally manage the database as members of the db_owner role.

  • このグループのメンバーが Azure AD グループから削除されると、このデータベースの dbo アクセス許可を自動的に失います。When members of this group are removed from the Azure AD group, they automatically loose the dbo permissions for this database.
  • 同様に、新しいメンバーが mydbogroup Azure AD グループに追加された場合ば、このデータベースの dbo アクセス許可を自動的に取得します。Similarly if new members are added to mydbogroup Azure AD group, they automatically gain the dbo access for this database.

特定のユーザーが有効な dbo アクセス許可を持つかどうかを確認するには、ユーザーに次のステートメントを実行させます。To check if a specific user has the effective dbo permission, have the user execute the following statement:

SELECT IS_MEMBER ('db_owner');  

戻り値 1 は、ユーザーがロールのメンバーであることを示します。A return value of 1 indicates the user is a member of the role.

アクセス許可Permissions

エンティティに対する TAKE OWNERSHIP 権限が必要です。Requires TAKE OWNERSHIP permission on the entity. 新しい所有者がステートメントを実行するユーザーではない場合は、次の条件に応じた権限が必要になります。1) 新しい所有者がユーザーまたはログインの場合は、新しい所有者に対する IMPERSONATE 権限。2) 新しい所有者がロールまたはロールのメンバーシップの場合は、ロールに対する ALTER 権限。3) 新しい所有者がアプリケーション ロールの場合は、アプリケーション ロールに対する ALTER 権限。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.

使用例Examples

A.A. テーブルの所有権を譲渡するTransfer ownership of a table

次の例では、テーブル Sprockets の所有権をユーザー MichikoOsada に譲渡します。The following example transfers ownership of table Sprockets to user MichikoOsada. このテーブルは、スキーマ Parts 内にあります。The table is located inside schema Parts.

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

クエリは次のようにもできます。The query could also look like the following:

ALTER AUTHORIZATION ON Parts.Sprockets TO MichikoOsada;    
GO    

オブジェクトのスキーマがステートメントの一部として含まれない場合、データベース エンジンDatabase Engine はユーザーの既定のスキーマでオブジェクトを検索します。If the objects schema is not included as part of the statement, the データベース エンジンDatabase Engine will look for the object in the users default schema. 例:For example:

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

B.B. ビューの所有権をスキーマの所有者に譲渡するTransfer ownership of a view to the schema owner

次の例では、ビュー ProductionView06 の所有権を、所属するスキーマの所有者に譲渡します。The following example transfers ownership the view ProductionView06 to the owner of the schema that contains it. このビューは、スキーマ Production 内にあります。The view is located inside schema Production.

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

C.C. スキーマの所有権をユーザーに譲渡するTransfer ownership of a schema to a user

次の例では、スキーマ SeattleProduction11 の所有権をユーザー SandraAlayo に譲渡します。The following example transfers ownership of the schema SeattleProduction11 to user SandraAlayo.

ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo;    
GO    

D.D. エンドポイントの所有権を SQL Server ログインに譲渡するTransfer ownership of an endpoint to a SQL Server login

次の例では、エンドポイント CantabSalesServer1 の所有権を JaePak に譲渡します。The following example transfers ownership of endpoint CantabSalesServer1 to JaePak. エンドポイントはサーバー レベルでセキュリティ保護可能なリソースであるため、エンドポイントを譲渡できるのはサーバー レベルのプリンシパルのみです。Because the endpoint is a server-level securable, the endpoint can only be transferred to a server-level principal.

適用対象: SQL Server 2008SQL Server 2008 から SQL Server 2019SQL Server 2019Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019.

ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak;    
GO    

E.E. テーブルの所有者を変更するChanging the owner of a table

以下の各例では、Parts データベースの Sprockets テーブルの所有者を、データベース ユーザー 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. データベースの所有者を変更するChanging the owner of a database

適用対象: SQL Server 2008SQL Server 2008SQL Server 2019SQL Server 2019Parallel Data WarehouseParallel Data WarehouseSQL DatabaseSQL DatabaseAPPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2019SQL Server 2019, Parallel Data WarehouseParallel Data Warehouse, SQL DatabaseSQL Database.

次の例では、Parts データベースの所有者をログイン MichikoOsada に変更します。The following example change the owner of the Parts database to the login MichikoOsada.

ALTER AUTHORIZATION ON DATABASE::Parts TO MichikoOsada;    

G.G. SQL Database の所有者を Azure AD ユーザーに変更するChanging the owner of a SQL Database to an Azure AD User

次の例では、cqclinic.onmicrosoft.com という名前の Active Directory を使用する組織内の SQL Server の Azure Active Directory 管理者は、次のコマンドを使用して、データベース targetDB の現在の所有権を変更し、AAD ユーザー richel@cqclinic.onmicorsoft.com を新しいデータベース所有者にすることができます。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];   

Azure AD ユーザーの場合、ユーザー名を角かっこで囲む必要があることに注意してください。Note that for Azure AD users the brackets around the user name must be used.

参照See Also

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