トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション



セキュリティ ボードリーダー:河端 善博

毎月第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.