パスワードの暗号化のために、Oracleプロシージャでdbms_crypto.encrypt関数を使用しています。私は次のようにOracleに接続しました:
connect sqlplus as sysdba
そして、次のように許可を与えました:
grant execute on sys.dbms_crypto to myuser;
そして、プロシージャでdbms_cryptoを使用できます。しかし、dbms_cryptoにアクセス許可が付与されているかどうかをデータベースで確認するにはどうすればよいですか?別のデータベースでこの手順を使用する必要があり、そのデータベースにdbms_cryptoの許可が付与されているかどうかがわからないためです。
これにより、DBMS_CRYPTO
のすべての特権を取得できます。
select *
from dba_tab_privs
where table_name = 'DBMS_CRYPTO'
and owner = 'SYS';
画像の結果は、USER_ABCD
がパッケージSYS.DBMS_CRYPTO
を実行する特権を持っており、この特権がSYS
ユーザーによって与えられたことを示しています。