DB:Oracle 10g
一部のテーブルのDMLコマンドをユーザーに付与できます。
GRANT SELECT, UPDATE, DELETE, INSERT ON USER_A.TABLE_1 TO USER_B;
USER_Bが受け取ったすべての許可(選択、更新、挿入、削除について)を一覧表示するには、どのテーブルに対して使用しますか?
テーブル「all_tab_privs_recd」を確認しましたが、探しているものがありません。
Oracle のセキュリティ専門家である extrordinaire の Pete Finnegan は、この種の質問に答えるのに役立ついくつかの異なるツールを提供しています。
参照: http://www.petefinnigan.com/tools.htm
特に、上記の質問については、find_all_privs.sql を参照してください。
それが役立つことを願っています。
USER_B が受け取ったすべての許可を一覧表示するために提案されたビューを使用する方法がわかりません。
GRANT SELECT、UPDATE、DELETE、INSERT ON USER_A.TABLE_1 TO USER_B;
私は質問します:
select * from all_tables where owner='USER_A'
shows 16 rows
Select * from all_tab_privs_recd where grantor = 'USER_A'
shows 0 rows
Select * from all_tab_privs_recd where grantee = 'USER_A'
shows 0 rows
Select * from all_tab_privs_recd where grantee = 'USER_B'
shows 0 rows
Select * from all_tab_privs_recd where grantor = 'USER_B'
shows 129 rows, but USER_A is not in grantee, nor in grantor nor in owner
(all_tab_privs_recd
およびall_tab_privs
) ビューには、明示的な許可が付与されているテーブルのみが表示され、USER_B が所有するテーブルは表示されません。(他のユーザーに許可が与えられていない限り。つまり、GRANTEE と OWNER が同じ場合です。) そのためにはall_tables
、所有しているテーブルを確認して、完全なアクセス権を持っているかどうかを確認する必要があります。