Table Emp
は10個の列で構成されています。すべての列を取得するために*をオーバーライドするには、just 3
、役割を使用しますか?たとえば、クエリロールを使用してOracle SQLで*をオーバーライドする方法は?
SELECT * FROM EMP
は、ユーザーに対して3列しか返しません。
Table Emp
は10個の列で構成されています。すべての列を取得するために*をオーバーライドするには、just 3
、役割を使用しますか?たとえば、クエリロールを使用してOracle SQLで*をオーバーライドする方法は?
SELECT * FROM EMP
は、ユーザーに対して3列しか返しません。
列レベルでは、INSERT、UPDATEおよびREFERENCES権限のみを付与できます。代わりに、以下のようにViewを作成することができます。
SQL> create view temp as select col1,col2,col3 from emp;
SQL> grant select on temp to someone;
としてユーザーsomeone
がビューにアクセスすることができます。役割に基づいて返される列の数を制限する方法はありません
SQL> conn someone/*****
SQL> select * from hr.temp;
。代わりにビューを使用することができます。 – dnoeth
「VPDを使用して列値をマスクする」(https://docs.oracle.com/cd/E11882_01/network.112/e36292/vpd.htm#i1014682)こともできますが、それはあなたが望むものではありません。とにかく '*'を使うのは良いことではありませんが、プライバシー上の理由からユーザーがデータを見ることができないようにするには、VPDがソリューションの一部になるかもしれません。 –