create user TEST
  identified by "password"
  default tablespace TEST
  temporary tablespace TEMP
  profile DEFAULT;
-- Grant/Revoke role privileges 
grant connect to TEST;
grant select any table to test;

解决方案 »

  1.   

    zhpsam109(昊子鳖鳖) :
    你好,我按你的办法试了还是不行啊,还是提示表或视图不存在。我想原因不是出在权限上,因为我都尝试把DBA的权限给了test用户,但是还是出同样的提示!
      

  2.   

    test用户登录进去,只能读test这个schema下面的表,你要读msmd下面的,当然会提示表不存在拉做法有几种,第一种:把那些表的select 权限给test,然后用 select * from msmd.table_name 来读取表第二种,在test下面创建只读视图来访问msmd下面的表
      

  3.   

    ronny5(兔子林) 
    你好,你说的第一个办法肯定是不可行的了,因为我想让test达到和msmd的自身用户同样的查询功能。你说的第二种办法,请详细告知!提前谢了!
      

  4.   

    Unlimite 權限 c
    进入图形化界面-->安全-->用户选中相应的用户,上面的菜单点击第三个“系统”。
    把 UNLIMITED TABLESPACE 这个系统权限赋给相应的用户就可以了!
      

  5.   

    你在SELECT的时候,如果原本是:
    SELECT * FROM TEST;
    改成:
    SELECT * FROM MSMD.TEST;也就是说,访问其它用户的表,必须带上用户名。这样只要有 SELECT ANY TABLE 权限,就可以达到你的需求了。
      

  6.   

    呵呵,这个我知道.
    create user TEST
      identified by "password"
      default tablespace TEST
      temporary tablespace TEMP
      profile DEFAULT;
    -- Grant/Revoke role privileges 
    grant connect to TEST;
    grant select any table to test; ----这个用户只能访问用户表,系统表你访问不到的.
    需要打开一个开关.
      

  7.   

    1. 给一个用户select any table的权限,但不想让该用户查询dictionary views;想在init<sid>.ora中将o7_dictionary_accessibility设置为false.
    2. 这个参数是控制select any table权限使用的。
    若该参数为 true,则有 select any table 权限的帐号则可查看
    DBA_ V$等之类的数据字典,否(false),则只能看自己权限内的
    如:user_, all_之类的字典。
      

  8.   

    表或视图是否是test用户创建,如果不是,那么查询的时候应该要在表前面加上创建者的用户名select * from user.tablename另外就是需要SELECT ANY TABLE 的权限,这样就可以了
      

  9.   

    老大们,还是不行啊!可能是我描述不够准确吧!其实我就想达到一个目的:让msmd库自身用户可以执行的脚本,test用户拿过来不做任何改动就可以直接执行;SELECT * FROM MSMD.TEST;前面这种方式我想应该是可以查到结果的,但是我的脚本里,如果有几百行的话,我岂不是要一个一个的来改,那肯定是不现实的啊!这样我就可以随时终止这个用户(test)的使用或改动他的登陆密码而不至于影响到其他的在用系统.其实test的权限都无所谓的,因为是我来控制他什么时间可以用,什么时间不可以用!这个能不能实现啊?如果不行的话,我就不在这个上面浪费时间了!
      

  10.   

    如果你不想用这样也可以,使用SYNONYMS在TEST用户下建立一个MSDM的同名对象,该对象指向MSMD,你只要在TEST用户下使用SELECT * FROM TEST就可以查询了,。
      

  11.   

    atsoftworld(游霞)
    你好,谢谢你的回复,但是我对你说的不是太明白,能不能告诉我具体是怎么操作的?再次感谢!
      

  12.   

    create public synonym for user.tablename
      

  13.   

    select * from msmd.tablename 
    如果这样不行的话 你在控制台里 安全性—> 用户—>test—> 对象里把 MSMD里表的SELECT 权限给TEST
    在执行
    select * from msmd.tablename 
    不可能不行  我的程序就这么实现的