次の方法で共有


サーバー構成: クロス db 所有権チェーン

適用対象: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 chaining1 に設定することはお勧めしません。

データベース間の所有権チェーンの状態を確認する

複数データベースの組み合わせ所有権の現在の状態を確認するには、次のクエリを実行します。

SELECT is_db_chaining_on,
       name
FROM sys.databases;

1の結果は、データベース間の所有権チェーンが有効になっていることを示します。

データベース間の所有権のチェーンを制御する

データベース間の所有権チェーンを有効または無効にする前に、次の操作を行います。

  • 複数データベースの組み合わせ所有権のオンとオフを切り替えるには、 sysadmin 固定サーバー ロールのメンバーである必要があります。

  • 運用サーバーでデータベース間の所有権チェーンを無効にする前に、サードパーティ製アプリケーションを含むすべてのアプリケーションを完全にテストして、変更がアプリケーションの機能に影響しないことを確認します。

  • cross db ownership chainingRECONFIGUREを指定した場合は、サーバーの実行中に sp_configure オプションを変更できます。

  • データベース間の所有権を必要とするデータベースがある場合は、cross db ownership chainingを使用してインスタンスのsp_configure オプションをオフにすることをお勧めします。その後、ALTER DATABASE ステートメントで必要な個々のデータベースに対して、データベース間の所有権チェーンを有効にすることをお勧めします。

セキュリティ リスク

SQL Server でデータベース間の所有権チェーンを有効にすると、潜在的なセキュリティの脆弱性が発生します。 この機能がアクティブな場合、昇格された特権を持つローカル データベース ユーザーは、所有権チェーンを利用してアクセス許可をエスカレートし、 sysadmin アクセス権を取得する可能性があります。

インスタンス レベルでデータベース間の所有権チェーンを有効にすることは避け、その使用を信頼できる関連データベースのみに制限する必要があります。