Oracleでは、ユーザーはビューからビューを選択できるようにするために、ビューに対する権限しか必要としません。表に対する特権は必要ありません。ビューを作成してバイパス・テーブル権限とWITH GRANT OPTIONを作成する
のは、このシナリオを考えてみましょう:
Table T belongs to A
A GRANT SELECT ON T to B (without GRANT OPTION)
B CREATE VIEW V AS SELECT * FROM A.T
B GRANT SELECT ON V TO C
C performing SELECT * FROM B.V
上記のルールによると、CはVから選択することができます、したがって、T.から選択することと同じで不正行為のようなものですか? Bは事実上CにA.Tを見せているが、CはTに権利がなく、BにはGRANT OPTIONはない。どこかにセキュリティホールはありますか?
Aは、他の誰かがBを除いてTを照会することを望んでいないので、Bには与えられたオプションを与えません。しかし、ビューBを作成することで、Cと他のすべての情報にすべての情報が与えられ、Aで効果的に不正行為が行われます。さらに、CがVの別のビューを作成して同じことをした場合、最終的に誰もAを隠そうとします。 – Kenny