首页 > 解决方案 > 如何将 dbms_crypto 上的执行权限授予用户?

问题描述

当我尝试执行此操作时:

grant execute on sys.dbms_crypto to "DB_Project";

我收到此错误:

ORA-00942: 表或视图不存在 00942. 00000 - “表或视图不存在”

将 sys.dbms_crypto 上的执行权限授予另一个用户时的尝试和错误

我也试过这个:

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

但我得到这个错误:

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

怎么解决???

标签: databaseoracle

解决方案


以 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>

推荐阅读