セキュリティ ボードリーダー:河端 善博
毎月第2、第4木曜日はボードリーダーからのレポートを掲載いたします。
2002年4月24日
『SP3 組み合わせ所有権』
ここ数日、会社では T シャツですごしています。
ことしの夏はどこまで暑くなるのやら。
アルコール飲料の会社は、ほくほくかも。
■SP3 組み合わせ所有権
サービスパック 3 で改訂された機能について、解説したいと思います。
詳しくはマイクロソフトの情報を参照してください。
[INF] SQL Server 2000 Service Pack 3 での
複数データベースの組み合わせ所有権の動作の変更点
http://support.microsoft.com/default.aspx?scid=kb;ja;810474
組み合わせ所有権とはどういうものでしょう。
複数のデータベースを利用している場合に関係があります。
例:
データベース DB_A
テーブル: TABLE_A
ビュー : VIEW_X
データベース DB_B
テーブル: TABLE_B
VIEW_X は、DB_A..TABLE_A と DB_B..TABLE_B を参照するものとします。
このとき、テーブルとビューに対するアクセス権の確認の動作が変更されて います。SP3以前は、VIEW_X に対するアクセスは、TABLE_A, TABLE_B に対 するアクセス権がなくてもVIEW_X に対してアクセス権があれば、利用でき ました。
SP3以後は、組み合わせ所有権を許可していない場合、アクセスできなくな ります。
例:
VIEW_X ○
TABLE_A ×
TABLE_B ×
--------------
SP3以前 ○
SP3(不許可) ×
SP3(許可) ○
SP3 以前、SP3 で組み合わせ所有権を許可している場合、SQL Server は、 VIEW_X のアクセス権のみ確認します。組み合わせ所有権が許可されていな い場合、SQL Server は、VIEW_X とTABLE_B へのアクセス権を確認します。
VIEW_X と同じデータベース DB_A にある TABLE_A のアクセス権は、確認し ません。
一方、VIEW_X と異なるデータベース DB_B にある TABLE_B のアクセス権は、 VIEW_X にアクセスするたびに確認されることになります。
組み合わせ所有権を許可している場合の脆弱性は、次のようになります。 DB_A のデータベース所有者が悪意を持っているとします。
DB_B のテーブルにアクセスさせたい場合、 DB_B の Table_B にアクセスにアクセスさせるには、 DB_A に View_X を作成し、Table_B を参照するようにします。 これで、View_X にアクセスすれば、DB_B の Table_B に アクセスできてしまいます。
SQL Server をデータベース単位に複数の管理者が共有している場合に問題 となります。ぜひ、開発者、データベース管理者の方は、基本的に組み合わ せ所有権を不許可にしてテストしていただければと思います。
なお、現在運用中のシステムを不許可に設定する場合、事前に充分にテスト することをお勧めします。ソフトウェアの開発元、保守会社、情報システム 部門と相談していただければと思います。
よくある質問として、次のことがあります。
組み合わせ所有権を不許可にした場合、
Q. データベースをまたぐ、VIEW はつくれなくなるのか ?
これは不許可にしていても、VIEW を作成することはできます。
上記の例では、DB_B の Table_B へのアクセス権が必要となります。
今回は、SQL Server 2000 サービスパック 3 にて追加された機能について取 り上げました。
ボードリーダーレポート トップページへ
PASSJメールニュース
著作権ついて
プライバシーポリシー
リンクポリシー
お問い合わせ
(C) 2005 Professional Association for SQL Server Japan. All rights reserved.