- 締切済み
データベースへのアクセス制御方式について
データベースへのアクセス制御方式を考える際、 スキーマで分ける、インスタンスで分けるといった方式が挙げられますが、 よく違いが分かりません。 一般的に、どのような時にスキーマレベルで分け、 どのような時にインスタンスレベルで分けるものなのか、 教えて頂けませんでしょうか。 また、他にもアクセス制御を分ける概念があれば知りたいです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.1
アクセス制御方式って、排他制御のことを言ってますか? 私が長年携わってきたRDBMSでは、以下の単位での排他制御があります。 排他制御を行うDB資源 (1)表単位 (2)エリア単位・・・(エリアとは、格納スペースのこと) (3)ページ単位・・・(ページとは、最少のI/O単位) (4)行単位 また、SQL中の指定で、「排他制御による待ちにせずにエラーリターンさせる」機能や「ダーティーリードする」機能などがあります。 行単位の排他制御にすれば、排他制御による待ちが少なくなり同時実行性を向上できます。反面、多くの行にアクセスすれば、ロックする資源数が多くなりオーバヘッドになります。 行単位の排他制御はオーバヘッドも大きいことから、ページ単位の排他制御が標準になっています。 表やエリアを排他制御単位とする方法では、更新する同士でのデータの共用はできないが、ページや行に対する排他制御が不要になるのでオーバヘッドを大幅に減らすことができます。多量データを操作する場合や他ユーザからの更新や参照を禁止したい場合に使用します。
お礼
早速のご回答、ありがとうございました。 また、説明不足で申し訳ございません。 セキュリティ面から見たアクセス制御のことをお聞きしたい次第でした。 例えば、顧客Aは顧客Bのデータにアクセスできないようにする場合、非常に高いセキュリティ性を求められる際には、物理レベルでテーブルを分ける。さほどセキュリティ性が求められない場合には、同じテーブルでユーザ権限レベルで分ける。など、様々な方式が考えられると思います。 こういったことを検討する際に、「スキーマで分ける」、「インスタンスで分ける」と言った表現方法が出てくるのですが、それらのイメージがつかめない為、一般的な例などをお聞きしたかった次第です。