6

Oracle 10g db(この場合はパッケージ)内の特定のオブジェクトに対する実行権限がすでに付与されているスキーマを確認する必要があります。これを行うための最も簡単な方法は何ですか?この情報を提供する組み込み関数はありますか?

4

1 に答える 1

6
SELECT grantee
  FROM all_tab_privs
 WHERE table_name = '<your object name>'
  AND privilege = 'EXECUTE'
  AND grantor = '<object owner>';

ええ、私は知っています、それは「table_name」と言いますが、それは実行可能オブジェクトにも適用されます。テーブルDBA_TAB_PRIVSも同様に機能します。これらのビューから選択してすべてのデータを表示するには、適切な権限(DBAロール、SELECT ANY TALBEなど)が必要です。

マーティンのコメントに応えて...上記は私が知っていることをあなたが求めたことをする最も簡単な方法です。パッケージに限定したい場合は、次のことを試してください。

SELECT * FROM all_tab_privs JOIN all_objects ON (table_name = object_name)
 WHERE table_name = '<your object name>'
   AND object_type = 'PACKAGE'
   AND privilege = 'EXECUTE'
   AND grantor = '<object owner>';
于 2009-08-10T14:59:02.537 に答える