环境 10G使用em创建一个用户,一切正常,用创建这个用户的 sql语句在 isql*plus 创建另外一个用户CREATE USER "Tim" PROFILE "DEFAULT" IDENTIFIED BY "*******" ACCOUNT UNLOCK只是修改了用户名和密码,也提示创建成功。而且在em里边可以看到这个用户 Tim但是接下来 执行授权操作 grant create table to Tim的时候提示我用户和角色不存在。后来发现唯一区别是,我使用em创建的用户在em里边显示都是大写名字(无论我创建的时候输入大写还是小写)而使用isql*plus创建的用户 则在em里边显示的是我当时创建时候输入的大写小规则。但这样再授权就是不行。
后来我尝试同样的语句,我把用户名全大写,就都可以了。查询语句里边我大小写怎么样变化都可以查到这个用户。。真奇怪啊!!!!!!!!!!!

解决方案 »

  1.   

    grant create table to "Tim";
    试试
      

  2.   

    CREATE USER Tim PROFILE DEFAULT IDENTIFIED BY ******* ACCOUNT UNLOCK 
      

  3.   

    SQL> CREATE USER "Tim" PROFILE "DEFAULT" IDENTIFIED BY "Tim" ACCOUNT UNLOCK;用户已创建。SQL> grant connect to tim;
    grant connect to tim
                     *
    第 1 行出现错误:
    ORA-01917: 用户或角色 'TIM' 不存在
    SQL> grant connect to Tim;
    grant connect to Tim
                     *
    第 1 行出现错误:
    ORA-01917: 用户或角色 'TIM' 不存在
    SQL> grant connect to "TIM";
    grant connect to "TIM"
                     *
    第 1 行出现错误:
    ORA-01917: 用户或角色 'TIM' 不存在
    SQL> grant connect to "tim";
    grant connect to "tim"
                     *
    第 1 行出现错误:
    ORA-01917: 用户或角色 'tim' 不存在
    SQL> grant connect to "Tim";授权成功。SQL>
      

  4.   

    因为你在用户名之类的加了双引号"",在sqlplus里面,如非必要,所有对象的双引号都应该去掉,否则会给你带来很多不必要的麻烦
      

  5.   

    关键是oracle本身不显示对象上的"",这是oracle令人搞不懂的地方
    允许用""号,但又不显示,给大家制造麻烦,嘿嘿