web-dev-qa-db-ja.com

Oracleはテーブルレベルと列レベルの権限をサポートしていますか?

顧客のテーブルがあり、SSNのようないくつかのプライベート/安全な情報がある場合、そのような情報を格納する別のテーブルを作成し、そのテーブルをロックして、厳密に1対1であっても特定の人だけが表示できるようにしますか?または、権限に基づいて列を不正な表示からロックすることもできますか?

両方のタイプのセキュリティメカニズムが存在する場合でも、どちらが優先されるのですか?あいまいなことを言ったかもしれませんが、SQL Serverをより頻繁に使用しています。

4
progtick

問題のテーブルから他のすべての列を選択するだけのビューを作成します。この列は、ユーザーにアクセスさせたくない列を除外します。テーブルではなくビューをクエリする権限を与えます。

6
mrdenny

INSERT、REFERENCES、およびUPDATEに対して 列レベルの権限 を付与できますが、標準の付与を使用して特定の列に対するSELECT権限を制限することはできません。

Sec_relevant_colsパラメータを使用して、列を制限する Virtual Private Database (VPD)ポリシーで列レベルのマスキングを行うことができます。この機能にはEnterprise Editionが必要です。

mrdennyは正しいです。これを行うもう1つの方法は、列を選択しないか、選択しないがマスクするビューを作成することです。

6
Leigh Riffel