1

DB:Oracle 10g

一部のテーブルのDMLコマンドをユーザーに付与できます。

GRANT SELECT, UPDATE, DELETE, INSERT ON USER_A.TABLE_1 TO USER_B;

USER_Bが受け取ったすべての許可(選択、更新、挿入、削除について)を一覧表示するには、どのテーブルに対して使用しますか?

テーブル「all_tab_privs_recd」を確認しましたが、探しているものがありません。

4

3 に答える 3

2

Oracle のセキュリティ専門家である extrordinaire の Pete Finnegan は、この種の質問に答えるのに役立ついくつかの異なるツールを提供しています。

参照: http://www.petefinnigan.com/tools.htm

特に、上記の質問については、find_all_privs.sql を参照してください。

それが役立つことを願っています。

于 2012-08-24T00:14:55.563 に答える
1

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
于 2012-08-23T22:08:10.900 に答える
0

(all_tab_privs_recdおよびall_tab_privs) ビューには、明示的な許可が付与されているテーブルのみが表示され、USER_B が所有するテーブルは表示されません。(他のユーザーに許可が与えられていない限り。つまり、GRANTEE と OWNER が同じ場合です。) そのためにはall_tables、所有しているテーブルを確認して、完全なアクセス権を持っているかどうかを確認する必要があります。

于 2012-08-23T21:33:02.580 に答える