在 ORACLE 中从 SYS 向 USER 授予授权时出错

Error while giving grant to USER from SYS in ORACLE

我已连接到 SYSDBA。我想授予用户 'OFFC' 读写目录 E:\oracle\extract 的权限。所以,我尝试的是:

CREATE OR REPLACE DIRECTORY EXTRACT_DIR AS 'E:\oracle\extract';
GRANT READ, WRITE ON DIRECTORY EXTRACT_DIR TO OFFC;
GRANT EXECUTE ON UTL_FILE TO OFFC;

我得到的错误是:

Directory created.
GRANT READ, WRITE ON DIRECTORY EXTRACT_DIR TO OFFC
Error at line 2
ORA-00604: error occurred at recursive SQL level 1
ORA-12899: value too large for column "OT"."SCHEMA_AUDIT"."OBJECT_CREATED" (actual: 16, maximum: 15)
ORA-06512: at line 2

为什么在我尝试授予访问权限时出现此错误?

您必须已经创建了架构级别 trigger,它将新创建的对象记录在 OT.SCHEMA_AUDIT 中。

在此 table 列中 OBJECT_CREATED 存储 schema.object_name 并且该列的数据类型有点 VARCHAR2(15) 或类似.

在您的情况下,您正在创建导致问题的对象 OFFC.EXTRACT_DIR(长度:16)。

禁用 trigger 或将 OBJECT_CREATED 列的长度增加到 (257)

左右

干杯!!