dblink权限控制问题

andyguan01_2 2009-10-26 11:04:53
主机A上有数据库用户A,现在想在主机B上新建数据库用户B,使其能访问主机A上数据库用户A的所有表,但不能修改这些表的数据,请各位帮忙提供方案,时间比较紧,谢谢各位!
我尝试的方案有:
1、在用户B上建DBLINK访问用户A的表。但这样无法限制用户B对用户A的表的修改权限;
2、在用户B上建DBLINK访问用户A的表,同时在用户B中建只读视图对这些表进行封装,以此限制用户B对用户A的表的修改权限。但这样当用户A的表结构发生变化时,用户B的视图不能自动同步更新。
...全文
1968 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灰狼W 2009-10-26
  • 打赏
  • 举报
回复
我们公司就是这么做的
给用户授权访问需要访问的表,然后建公共同义词
grant select on a.aaaaa to c;
create public synonym aaaaa for w.aaaaa;
用户c即可通过
select * from aaaaa
查询到a.aaaaa表
Dave 2009-10-26
  • 打赏
  • 举报
回复

[Quote=引用 1 楼 wildwave 的回复:]
1.在主机a上新建一个用户c,赋予其select 权限
2.在主机b上建dblink连接上用户c
[/Quote]

不错...
cosio 2009-10-26
  • 打赏
  • 举报
回复
1.在主机a上新建一个用户c,赋予其select 权限 
2.在主机b上建dblink连接上用户c


可以测试一下!
小灰狼W 2009-10-26
  • 打赏
  • 举报
回复
1.在主机a上新建一个用户c,赋予其select 权限
2.在主机b上建dblink连接上用户c
andyguan01_2 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wildwave 的回复:]
我们公司就是这么做的
给用户授权访问需要访问的表,然后建公共同义词
grant select on a.aaaaa to c;
create public synonym aaaaa for w.aaaaa;
用户c即可通过
select * from aaaaa
查询到a.aaaaa表
[/Quote]

非常感谢,已按你的方法做了,测试通过。

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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