江西h5响应式网站建设设计,社区论坛系统免费开源,wordpress 国产评论插件,wordpress 文章太窄#xfeff;在Oracle中#xff0c;SYS用户是整个数据库的所有者#xff0c;SYS拥有数据库中几乎所有的权限。今天我们就来介绍一下使用SYS执行全文索引的建立时#xff0c;出现了权限不足的错误。 许多人刚刚接触Oracle时#xff0c;对于权限并不是很了解#xff0c;… 在Oracle中SYS用户是整个数据库的所有者SYS拥有数据库中几乎所有的权限。今天我们就来介绍一下使用SYS执行全文索引的建立时出现了权限不足的错误。 许多人刚刚接触Oracle时对于权限并不是很了解如果有时候报错ORA-1031缺少足够的权限且找不到所需要的授权的权限时就会尝试使用SYS来执行这个错误。由于SYS时整个数据库的所有者因此不会出现缺少权限的问题。 下面我们来介绍一个错误案例在测试一个全文索引例子的时候由于忘记切换用户使用了SYS用户执行结果出现ORA-1031错误数据库测试版本为9204 SQL SHOW USER USER 为SYS SQL CREATE TABLE T (ID NUMBER, NAME VARCHAR2(60)); 表已创建。 SQL INSERT INTO T VALUES (1, A SIMPLE TEST FOR SYS CREATE CONTEXT INDEX); 已创建 1 行。 SQL CREATE INDEX IND_T_NAME ON T(NAME) INDEXTYPE IS CTXSYS.CONTEXT; CREATE INDEX IND_T_NAME ON T(NAME) INDEXTYPE IS CTXSYS.CONTEXT * ERROR 位于第 1 行: ORA-29855: 执行 ODCIINDEXCREATE 例行程序时出错 ORA-20000: Oracle Text 错误: DRG-50857: oracle error in drixtab.create_index_tables ORA-01031: 权限不足 ORA-06512: 在CTXSYS.DRUE, line 157 ORA-06512: 在CTXSYS.TEXTINDEXMETHODS, line 204 注意这个例子在普通用户下并不会报错 SQL CONN YANGTK/YANGTKTEST1已连接。 SQL CREATE TABLE T (ID NUMBER, NAME VARCHAR2(60)); 表已创建。 SQL INSERT INTO T VALUES (1, A SIMPLE TEST FOR SYS CREATE CONTEXT INDEX); 已创建 1 行。 SQL CREATE INDEX IND_T_NAME ON T(NAME) INDEXTYPE IS CTXSYS.CONTEXT; 索引已创建。 通过EVENTS 10046进行跟踪发现在创建DR$IND_T_NAME$K表的时候报错而这个表是一个索引组织表。 根据这些信息查询了METALINK发现Bug No. 1366361对这个问题进行了比较清晰的阐述。缺少权限的不是SYS用户而是CTXSYS所建立的存储过程没有权限。不过此处并没有解释清楚为什么普通表没有问题而建立一个索引组织表报错。 下面给出了对应的解决方法将数据库的O7_DICTIONARY_ACCESSIBILITY设置为TRUE重起后就不会报错了。 SQL CONN /TEST1 AS SYSDBA已连接。 SQL SHOW PARAMETER O7 NAME TYPE VALUE ------------------------------------ ----------- -------------------------- O7_DICTIONARY_ACCESSIBILITY boolean FALSE SQL ALTER SYSTEM SET O7_DICTIONARY_ACCESSIBILITY TRUE SCOPE SPFILE; 系统已更改。 SQL SHUTDOWN IMMEDIATE数据库已经关闭。已经卸载数据库。 ORACLE 例程已经关闭。 SQL STARTUP ORACLE 例程已经启动。 Total System Global Area 110173900 bytes Fixed Size 454348 bytes Variable Size 83886080 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes数据库装载完毕。数据库已经打开。 最后删除刚才建立索引失败留下的垃圾表就可以重建索引了 SQL DROP INDEX IND_T_NAME; 索引已丢弃。 SQL CREATE INDEX IND_T_NAME ON T(NAME) INDEXTYPE IS CTXSYS.CONTEXT; 索引已创建。 转自http://www.wangchao.net.cn/bbsdetail_1794410.html转载于:https://www.cnblogs.com/freewater/archive/2011/06/04/2072775.html