如何授予用户dbms_crypto? Oracle(在SYSTEM内部创建的用户)

时间:2019-03-17 09:12:55

标签: database oracle

找不到用户

我尝试过

grant execute on sys.dbms_crypto to "DB_Project";

但是错误:ORA-00942:表或视图不存在 00942. 00000-“表或视图不存在”

也尝试过此操作:

grant execute on sys.dbms_crypto to SYSTEM."DB_Project"; 

错误:00000-“ SQL命令未正确结束”

如何解决?

enter image description here

1 个答案:

答案 0 :(得分:1)

以SYS身份连接并将该特权授予用户:

SQL> show user
USER is "SYS"
SQL> grant execute on dbms_crypto to scott;

Grant succeeded.

SQL>

您已将其授予"DB_Project"-您是否真的使用大小写混合的方式创建了用户?如果没有,请删除双引号。

说您将其授予“在SYSTEM内部创建的用户”-那会是什么?不能在其他用户内部创建用户,每个用户都是独立的。我正在尝试做您告诉我们的事情:

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>