.....
使用newuser登陆,使用pl/sql中command下没有问题,可以是在sql下,就报一个错误,
....在SQL下做什么报错呢?

解决方案 »

  1.   

    1, 授予用户CREATE SESSION,SELECT ANY TABLE权限就行了
    2. grant connect to user
      

  2.   

    新建一个用户(create user user_name identified by user_pwd default tablespace user_tb temporary tablespace temp;),创建完成后对该用户进行授权(grant connect to user_name;),这是该用户可以进行数据库的连接。如果让用户可以访问所有的表可以使用grant select any table to user_name,如果是制定标的访问要对特定的表授予select权限。
      

  3.   

    回 dinya2003(OK) 
    我的意思是在pl/sql里不是有几个写语句的模式吗?
    一个是 command 下的,一个是在sql window 下的。
    我的新用户在command 下,查询别人授权的表,很正常,但是切换在sql window 模式下,就包一个错误,内容是
    “dynamic performance tables not accessible automatic statistics disabled for this session you can disable statistics in the preference menu,or obtain select priviliges on the v$session, V$statname table ”
    好想是说没有权限,但是为什么在command 下就不报了??回 zealot_zk(风中追风) 我好象把connect给删除了,怎么办呀?
      

  4.   

    我把我的步骤说给大家听,大家看看那里有错误
    1,建立一个新用户newuser。
    2。使用dba(tom) 权限登陆,
    3  给权限。grant create session,create synonym to newuser
    4 建立一个表,a ,并且把这个表的查询权限给newuser
    grant select on a to newuser;
    5 使用newuser登陆,
    select * from tom.a; 查询
    这样,在command 里查询没有问题,但是在sql 模式下就报错误
    “dynamic performance tables not accessible automatic statistics disabled for this session you can disable statistics in the preference menu,or obtain select priviliges on the v$session, V$statname table ”
    大家帮帮我?
      

  5.   

    同学们。我查了,知道了问题。
    看这里
    http://www.itpub.net/318562.html

    把V$session,V$sesstat和V$statname这三个视图的SELECT权限授予给出现这个错误的用户。
    或者在Preferences中找来Statistics的选项将默认勾选除掉。在不同的数据库里面的同一个用户名可能也有不同的权限。
    你也可以将上面提到的三个动态性能视图的SELECT授予给PUBLIC,这样这个库上的所有用户都不会出现这个错误提示了。
    打开了这个Statistics选项后,执行速度会下降(仅限于这个工具打开的会话)。

    但是有出来了一个新的问题。我使用dba 登陆。
    grant select on v$session to urUserName;
    还是报错
    ORA-01031: 权限不足
    我使用system 登陆,也是的。
    使用sys 也不可以。。这个是怎么回事情呀。》》
      

  6.   

    SQL> connect system/system@ora9i
    Connected to Oracle9i Release 9.2.0.1.0 
    Connected as systemSQL> create user newuser identified by newuser default tablespace users temporary tablespace temp;User createdSQL> grant create session,create synonym to newuser;Grant succeededSQL> create table a (id number,name varchar2(200));Table createdSQL> grant select on a to newuser;Grant succeededSQL> connect newuser/newuser@ora9iConnected to Oracle9i Release 9.2.0.1.0 
    Connected as newuserSQL> select * from system.a;        ID NAME
    ---------- ------------------------------------------------SQL> --可以了, 到这里后转到SQL Windows下去执行.  select * from system.a 也是可以的. 
      

  7.   

    程序报出的是Ora-01039错误吗? SQL> connect system/system@ora9i
    Connected to Oracle9i Release 9.2.0.1.0 
    Connected as systemSQL> @D:\system\ora9i\rdbms\admin\utlxplan.sqlTable createdSQL> create public synonym plan_table for plan_table;Synonym createdSQL> grant all on plan_table to public;Grant succeededSQL> connect sys/sys@ora9i as sysdba
    Connected to Oracle9i Release 9.2.0.1.0 
    Connected as SYSSQL> @D:\system\ora9i\sqlplus\admin\plustrce.sql
    drop role plustrace;drop role plustraceORA-01919: 角色'PLUSTRACE'不存在
    create role plustrace;Role created
    grant select on v_$sesstat to plustrace;Grant succeeded
    grant select on v_$statname to plustrace;Grant succeeded
    grant select on v_$session to plustrace;Grant succeeded
    grant plustrace to dba with admin option;Grant succeeded
    set echo offSQL> grant plustrace to public;Grant succeededSQL> 
    SQL> exit-- 重新登陆.