Oracle 用户权限的问题

lei198203 2008-06-19 10:01:09
建立了一个用户TEST_READONLY,赋予了对TEST下的A表的select权限.
使用TEST_READONLY登入后,select A表时总要写TEST.A. 如: select * from TEST.A
有没有办法可以不加TEST,直接用select * from A读取A表?
...全文
144 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuzhenhuan01 2008-06-19
  • 打赏
  • 举报
回复
建个同义词就可以了
不然只能加前缀
lei198203 2008-06-19
  • 打赏
  • 举报
回复
这个我知道,有没有办法可以在TEST_READONLY用户下直接访问A表,不加TEST?
ehsgs 2008-06-19
  • 打赏
  • 举报
回复
你当前在TEST_READONLY用户下
你不加test 直接select * from A
它会认为你是要检索TEST_READONLY用户的A表
lei198203 2008-06-19
  • 打赏
  • 举报
回复
设过了,还是不行.
test这个schema原来有个用户TEST_RW,这个用户登入后可以不加TEST,直接访问里面的表


mahaiqin 2008-06-19
  • 打赏
  • 举报
回复
用户TEST_READONLY的默认表空间是什么?
若没什么特殊要求,设成test就应该可以吧。
lei198203 2008-06-19
  • 打赏
  • 举报
回复
看来也只有这样了,幸好还有个EM可以操作. 结贴了.
ehsgs 2008-06-19
  • 打赏
  • 举报
回复
用游标吧
SELECT table_name FROM user_tables用这个查询出你当前用户的所有表
然后逐个授权吧
lei198203 2008-06-19
  • 打赏
  • 举报
回复
GRANT SELECT ANY TABLE TO TEST_READONLY 那就可以看到全部schema下的表了,我想要的效果是只赋予查看TEST下所有的表
ehsgs 2008-06-19
  • 打赏
  • 举报
回复
GRANT SELECT ANY TABLE TO TEST_READONLY ;等同于你grant select on TEST.* to TEST_READONLY
ehsgs 2008-06-19
  • 打赏
  • 举报
回复
CREATE SYNONYM TEST_READONLY.* FOR TEST.* 这样我觉得不行
你觉得工作两太大的话 做个游标好了

grant select on TEST.* to TEST_READONLY 这个你想达到什么效果
它就是授予TEST_READONLY用户查询的权限
lei198203 2008-06-19
  • 打赏
  • 举报
回复
楼上的,先谢过了. 再问一个问题,可不可以CREATE SYNONYM TEST_READONLY.* FOR TEST.* ?
如果每一个表都要建同义词,那工作量就太大了. 还有,赋予权限的时候,能不能
grant select on TEST.* to TEST_READONLY ? 有没有办法达到同样的效果?
ehsgs 2008-06-19
  • 打赏
  • 举报
回复
CREATE SYNONYM TEST_READONLY.A FOR TEST.A
/


这样的话 你就可以直接select * from A了
lei198203 2008-06-19
  • 打赏
  • 举报
回复
楼上的,给个例子吧.我不知道怎么建.

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧