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;
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;
你好,我按你的办法试了还是不行啊,还是提示表或视图不存在。我想原因不是出在权限上,因为我都尝试把DBA的权限给了test用户,但是还是出同样的提示!
你好,你说的第一个办法肯定是不可行的了,因为我想让test达到和msmd的自身用户同样的查询功能。你说的第二种办法,请详细告知!提前谢了!
进入图形化界面-->安全-->用户选中相应的用户,上面的菜单点击第三个“系统”。
把 UNLIMITED TABLESPACE 这个系统权限赋给相应的用户就可以了!
SELECT * FROM TEST;
改成:
SELECT * FROM MSMD.TEST;也就是说,访问其它用户的表,必须带上用户名。这样只要有 SELECT ANY TABLE 权限,就可以达到你的需求了。
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; ----这个用户只能访问用户表,系统表你访问不到的.
需要打开一个开关.
2. 这个参数是控制select any table权限使用的。
若该参数为 true,则有 select any table 权限的帐号则可查看
DBA_ V$等之类的数据字典,否(false),则只能看自己权限内的
如:user_, all_之类的字典。
你好,谢谢你的回复,但是我对你说的不是太明白,能不能告诉我具体是怎么操作的?再次感谢!
如果这样不行的话 你在控制台里 安全性—> 用户—>test—> 对象里把 MSMD里表的SELECT 权限给TEST
在执行
select * from msmd.tablename
不可能不行 我的程序就这么实现的