systemとしてログインしている場合でも、DBMS_LOB
(ファイルを操作するために必要です)に対する実行権限を付与できません。私に何ができる? DBA ROLE
を付与してもまったく効果がありません。
Error starting at line 7 in command:
grant execute on sys.DBMS_LOB TO PGADMIN
Error report:
SQL Error: ORA-01031:
01031. 00000 - "insufficient privileges"
私はそれについて数時間頭を悩ませてきました。私の場合に機能するソリューションを誰かが提供してくれることを願っています。
SYSTEMは一般的なデータベースユーザー(HRやOEなど)です。
_DBMS_LOB
_パッケージはSYS
スキーマに属しているため、所有者(または_GRANT OPTION
_を持つユーザー)のみが他のユーザーにオブジェクト特権を付与できます。したがって、SYSDBA
ユーザーを使用してSYSTEM
として接続すると、SYS
スキーマに接続されます。
_SQL> conn system/Oracle
Connected.
SQL> show user
USER is "SYSTEM"
SQL>
SQL> grant execute on dbms_lob to hr;
grant execute on dbms_lob to hr
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL> conn system/Oracle as sysdba
Connected.
SQL>
SQL> show user
USER is "SYS"
SQL> grant execute on dbms_lob to hr;
Grant succeeded.
SQL> revoke execute on dbms_lob from hr;
Revoke succeeded.
_
[〜#〜]または[〜#〜]
_DBMS_LOB
_のEXECUTE
を_GRANT OPTION
_のSYSTEM
ユーザーに付与し、次にユーザーSYSTEM
ユーザーにそのオブジェクトの権限を他のユーザーに付与することができます。
_SQL> conn / as sysdba
Connected.
SQL> grant execute on dbms_lob to system with grant option;
Grant succeeded.
SQL> conn system/Oracle
Connected.
SQL> grant execute on dbms_lob to hr;
Grant succeeded.
SQL>
_