ORA-02001 user SYS is not permitted to create indexes with freelist groupsCause An attempt was made to create an index while running with SYS authorization. 
Action Indexes cannot be created with SYS authorization. Either do not create the index or switch to USER authorization.

解决方案 »

  1.   

    谢谢,jlandzpa。
    但是,它说的这种情况是在有INDEX被创建的情况下才会出现的。可是我没有创建INDEX,
    我把我的问题再贴一遍吧,上面都只有几行。另外,你是不是有本错误索引大全的书啊,有电子版的吗?//REPEAT
    建表的时候出现的问题:
    ORA-02001;用户SYS不允许创建可用列表组的索引。我不是很明白,因为根本没建索引啊,我是用图形化的方式建表的,但我有记下SQL的文本。附在后面。我用的是ORACLE9.0标准版,通用数据库,用SYS连接的数据库
    (顺便问个问题,SYS的权限是不是比SYSTEM小得多?但我用SYSTEM无法连接库??,这个,有点矛盾啊)我刚开始学ORACLE,可以的话,讲给我详细点吧。
      

  2.   

    我用sys用户连接数据库能够建立表和索引,都没有出问题啊!我用的是oracle817
      

  3.   

    是啊,我以前建表的时候也没出过这种问题,建索引也没有问题。
    只是重新装了遍机器,就这样了。
    现在都不知道该怎么办好了。
    这是我说的SQL
    //附录CREATE TABLE "YANG"."DRIVERS" ("DRIV_ID" VARCHAR2(3 byte) NOT 
        NULL, "DRIV_NAME" VARCHAR2(8) NOT NULL, "DRIV_SEX" 
        VARCHAR2(2) DEFAULT '男' NOT NULL, 
        CONSTRAINT "DRIV_ID_PK" PRIMARY KEY("DRIV_ID") 
        USING INDEX  
        TABLESPACE "OEM_REPOSITORY" 
        STORAGE ( INITIAL 8K NEXT 0K MINEXTENTS 1 MAXEXTENTS 
        2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) 
        PCTFREE 10 INITRANS 2 MAXTRANS 255, 
        CONSTRAINT "DRIV_SEX_CK" CHECK(driv_sex IN('男','女')))  
        TABLESPACE "OEM_REPOSITORY" PCTFREE 20 PCTUSED 60 INITRANS 2
        MAXTRANS 255 
        STORAGE ( INITIAL 8K NEXT 0K MINEXTENTS 1 MAXEXTENTS 
        2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) 
        LOGGING 我想应该是某些权限的问题才对。可是我又不知道怎么去找/
      

  4.   

    Action Indexes cannot be created with SYS authorization. Either do not create the index or switch to USER authorization.
    ----------用dba用户试一试,
    另外,如果是普通用户,由于角色的问题,可能不能对其他的库进行操作。
      

  5.   

    看看你以更高的层次给sys用户分配的权限是怎样的!
      

  6.   

    qxjavajava(射手座 =---> 恭喜发财) 是不是在安全性-用户里?
    我看过的,我把SYSTEM有的几个权限都加上了

    UNLIMITED TABLESPACE,
    SELECT_CATALOG_ROLE
    看了一眼,SYS也有DBA的权限啊
    后来建用户的时候,在对某个具体的表开放操作的时候,又说我权限不足估计是一个问题,
    但我还不会解决
      

  7.   

    jlandzpa(jlandzpa) ,你说的不建主键好象不太好吧,
    我总不能一直用着没有主键的表吧不过,还是谢谢你:)
      

  8.   

    不建还有没有那个错?对于主键,oracle会自动建一个索引,
    还有,为什么用sys这个系统用户?
      

  9.   

    jlandzpa(jlandzpa)  
    我后来不用省掉主键也可以建表了,原因很奇怪,我把建表的步骤分开做。先建主键,建表,成功后再建CHECK。(我忘了说,错误标志一直呆在CK一行上)。但是用户权限的问题依然存在,就像我后来提到的新键用户时出现的错误一样。我用SYS是因为它们是系统默认的用户帐号,而用SYSTEM又无法登陆(?)
    如果按QX说的用DBA建用户的话,那么SYS本身也是DBA,不可以给新建用户DBA权限吗?我的确是刚开是学,有很多不懂的东西你们的意思,我也许需要新建一个用户,作为管理用,是吧
    用SYS来建吗?
      

  10.   

    --新建一个用户即可,这个用户可由任何一个具有dba角色的用户来创建.15:42:00 jlanzpa817>conn sys/zpa
    已连接。
    15:42:09 jlanzpa817>CREATE TABLE "DRIVERS" ("DRIV_ID" VARCHAR2(3) NOT 
    15:42:09   2      NULL, "DRIV_NAME" VARCHAR2(8) NOT NULL, "DRIV_SEX" 
    15:42:09   3      VARCHAR2(2) DEFAULT '男' NOT NULL, 
    15:42:09   4      CONSTRAINT "DRIV_ID_PK" PRIMARY KEY("DRIV_ID") 
    15:42:09   5      USING INDEX  
    15:42:09   6      STORAGE ( INITIAL 8K NEXT 0K MINEXTENTS 1 MAXEXTENTS 
    15:42:09   7      2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) 
    15:42:09   8      PCTFREE 10 INITRANS 2 MAXTRANS 255, 
    15:42:09   9      CONSTRAINT "DRIV_SEX_CK" CHECK(driv_sex IN('男','女')))  
    15:42:09  10      PCTFREE 20 PCTUSED 60 INITRANS 2
    15:42:09  11      MAXTRANS 255 
    15:42:09  12      STORAGE ( INITIAL 8K NEXT 0K MINEXTENTS 1 MAXEXTENTS 
    15:42:09  13      2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) 
    15:42:09  14      LOGGING 
    15:42:10  15  /
        CONSTRAINT "DRIV_SEX_CK" CHECK(driv_sex IN('男','女')))
                                       *
    ERROR 位于第 9 行:
    ORA-02001: 用户 SYS 不允许创建可用列表组的索引
    已用时间:  00: 00: 00.90
    15:42:10 jlanzpa817>conn test/zpa已用时间:  00: 00: 01.43
    15:42:47 jlanzpa817>CREATE TABLE "DRIVERS" ("DRIV_ID" VARCHAR2(3) NOT 
    15:42:52   2      NULL, "DRIV_NAME" VARCHAR2(8) NOT NULL, "DRIV_SEX" 
    15:42:52   3      VARCHAR2(2) DEFAULT '男' NOT NULL, 
    15:42:52   4      CONSTRAINT "DRIV_ID_PK" PRIMARY KEY("DRIV_ID") 
    15:42:52   5      USING INDEX  
    15:42:52   6      STORAGE ( INITIAL 8K NEXT 0K MINEXTENTS 1 MAXEXTENTS 
    15:42:52   7      2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) 
    15:42:52   8      PCTFREE 10 INITRANS 2 MAXTRANS 255, 
    15:42:52   9      CONSTRAINT "DRIV_SEX_CK" CHECK(driv_sex IN('男','女')))  
    15:42:52  10      PCTFREE 20 PCTUSED 60 INITRANS 2
    15:42:52  11      MAXTRANS 255 
    15:42:53  12      STORAGE ( INITIAL 8K NEXT 0K MINEXTENTS 1 MAXEXTENTS 
    15:42:53  13      2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1) 
    15:42:53  14      LOGGING 
    15:42:53  15  /表已创建。已用时间:  00: 00: 00.80
    15:42:54 jlanzpa817>--抱歉,前面没有做测试就乱发表意见了,
    好象check也会生成索引的.
      

  11.   

    哇,你真厉害,也真认真。
    我要向你学习!:)现在没有机器,明天上午会去试一下,我有个小问题,SYS的权限里也有DBA啊,为什么SYS
      

  12.   

    为什么SYS不能建动态索引呢?TEST是你自建的一个用户吗?另外感兴趣的是:你的SQL PLUS前面的时间是怎么出来的啊,好羡慕啊
      

  13.   

    1.为什么SYS不能建动态索引呢? 因为oracle就是这么设计的,没有为什么.
    2.set time on 更多的命令可以: sho all