web-dev-qa-db-fra.com

PL / SQL ne peut pas accorder des privilèges lorsqu'il est connecté en tant que système

Je ne peux pas accorder le privilège exécuté sur DBMS_LOB (J'en ai besoin de fonctionner sur des fichiers), même lorsque je suis connecté comme -System. Que puis-je faire? Accorder DBA ROLE n'aide pas du tout.

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"

Je me suis rattrapé mon cerveau pendant quelques heures. J'espère que quelqu'un peut fournir une solution qui fonctionnera dans mon cas.

2
Matt_DontKnow

Le système est un utilisateur de base de données typique (telle que HR ou OE)

Le DBMS_LOB paquet appartient au schéma SYS de sorte que seul le propriétaire (ou l'utilisateur ait le GRANT OPTION) Peut accorder les privilèges d'objet à d'autres utilisateurs. Donc, si vous vous connectez comme SYSDBA à l'aide de SYSTEM utilisateur vous serez connecté à SYS schéma.

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.

OU

Vous pouvez accorder EXECUTE sur DBMS_LOB à SYSTEM utilisateur avec GRANT OPTION Ensuite, utilisateur SYSTEM utilisateur d'accorder le privilège d'objet à d'autres utilisateurs.

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>
3
JSapkota