Подключитесь как SYS и предоставьте эту привилегию пользователю:
SQL> show user
USER is "SYS"
SQL> grant execute on dbms_crypto to scott;
Grant succeeded.
SQL>
Вы предоставили его "DB_Project"
- вы действительно создали пользователя, используя смешанный регистр? Если нет, удалите двойные кавычки.
Сказать, что вы дадите его "пользователю, созданному внутри СИСТЕМЫ" - что это будет? Пользователи не могут быть созданы «внутри» других пользователей, каждый из них является отдельным. Я пытаюсь сделать то, что вы сказали нам:
SQL> create user "DB_Project" identified by test;
User created.
SQL> grant execute on dbms_crypto to db_project;
grant execute on dbms_crypto to db_project
*
ERROR at line 1:
ORA-01917: user or role 'DB_PROJECT' does not exist
SQL> grant execute on dbms_crypto to "DB_Project";
Grant succeeded.
SQL>
Очевидно, это работает, когда имя пользователя заключено в двойные кавычки (если оно было создано таким образом - я бы не рекомендовал его).
Есть что-нибудь еще, что вы сделали (и не показали нам)? Что вызвало ORA-00942? Здесь нет таблицы ...
О да, говоря "вы не можете найти пользователя", вот как вы это сделаете:
SQL> select * From all_users;
USERNAME USER_ID CREATED
------------------------------ ---------- --------
XS$NULL 2147483638 29.05.14
DB_Project 49 17.03.19
SCOTT 48 19.02.19
APEX_040000 47 29.05.14
<snip>