適用対象:SQL Server
cross db ownership chaining オプションを使用して、SQL Server インスタンスのデータベース間の所有権チェーンを構成します。
このサーバー オプションを使用すると、次に示すように、データベース レベルで複数データベースの組み合わせ所有権を制御したり、すべてのデータベースに複数データベースの組み合わせ所有権を許可できるようになります。
インスタンスの
cross db ownership chainingがオフ (0) の場合、データベース間の所有権はすべてのデータベースで無効になります。インスタンスの
cross db ownership chainingがオン (1) の場合、データベース間の所有権はすべてのデータベースに対してオンになります。SETステートメントのALTER DATABASE句を使用して、個々のデータベースに対してデータベース間の所有権を設定できます。 新しいデータベースを作成する場合は、CREATE DATABASEステートメントを使用して、新しいデータベースのクロスデータベース所有権オプションを設定できます。SQL Server のインスタンスによってホストされているすべてのデータベースがデータベース間の所有権チェーンに参加する必要があり、この設定のセキュリティへの影響を認識している場合を除き、
cross db ownership chainingを1に設定することはお勧めしません。
データベース間の所有権チェーンの状態を確認する
複数データベースの組み合わせ所有権の現在の状態を確認するには、次のクエリを実行します。
SELECT is_db_chaining_on,
name
FROM sys.databases;
1の結果は、データベース間の所有権チェーンが有効になっていることを示します。
データベース間の所有権のチェーンを制御する
データベース間の所有権チェーンを有効または無効にする前に、次の操作を行います。
複数データベースの組み合わせ所有権のオンとオフを切り替えるには、 sysadmin 固定サーバー ロールのメンバーである必要があります。
運用サーバーでデータベース間の所有権チェーンを無効にする前に、サードパーティ製アプリケーションを含むすべてのアプリケーションを完全にテストして、変更がアプリケーションの機能に影響しないことを確認します。
cross db ownership chainingでRECONFIGUREを指定した場合は、サーバーの実行中にsp_configureオプションを変更できます。データベース間の所有権を必要とするデータベースがある場合は、
cross db ownership chainingを使用してインスタンスのsp_configureオプションをオフにすることをお勧めします。その後、ALTER DATABASE ステートメントで必要な個々のデータベースに対して、データベース間の所有権チェーンを有効にすることをお勧めします。
セキュリティ リスク
SQL Server でデータベース間の所有権チェーンを有効にすると、潜在的なセキュリティの脆弱性が発生します。 この機能がアクティブな場合、昇格された特権を持つローカル データベース ユーザーは、所有権チェーンを利用してアクセス許可をエスカレートし、 sysadmin アクセス権を取得する可能性があります。
インスタンス レベルでデータベース間の所有権チェーンを有効にすることは避け、その使用を信頼できる関連データベースのみに制限する必要があります。