私のソフトウェアでは、実行時に、接続されたユーザーが2つの異なるスキーマにわたっていくつかのテーブルに対する権限を持っているかどうかを確認する必要があります。調査の結果、これらの2つのビューに遭遇しましたALL_TAB_PRIVS_RECD ALL_TAB_PRIVSこれらのビューの1つを使用する必要がありますか、それとも別の方法がありますか?ありがとう
最後に、接続されたユーザーが特権を確認するスキーマと異なる場合にのみ使用するこのクエリが付属しました。
SELECT PRIVILEGE
FROM ALL_TAB_PRIVS_RECD
WHERE PRIVILEGE = 'SELECT'
AND TABLE_NAME = 'GN_VERSION'
AND OWNER = 'USER_A'
UNION ALL
SELECT PRIVILEGE
FROM SESSION_PRIVS
WHERE PRIVILEGE = 'SELECT ANY TABLE';
これは、USER_AスキーマのテーブルGN_VERSIONに対するSELECT特権をチェックします
ALL_TAB_PRIVS
は ALL_TAB_PRIVS_RECD
。あなたはおそらくALL_TAB_PRIVS
現在のユーザーが所有するテーブルが含まれているため。