用户表的互访问题

uniconwang 2010-02-01 07:05:43
大家好,求教个问题:
二个用户帐号a和b,a用户建表a_table,b用户访问a_table只能用a.a_table形式,我希望b用户访问无须加表的owner,即直接访问a_table而不是a.a_table,如select * from a_table而不是select * from a.a_table,
领导说研究一下schema就可以了,可是我看来看去,网上查来查去也没有找到解决方法,大家能不能告诉我该用什么技术来实现呢?
附:创建同义词外的方法对我来说很不靠谱,因为库里现在就有表9500多张了,而且帐号是分配给其他人用的,我不能强迫他们每次建了表还要建一个别名吧?
先谢过了。
...全文
118 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wh62592855 2010-02-03
  • 打赏
  • 举报
回复
具体的使用方法可以看下那个链接
wh62592855 2010-02-03
  • 打赏
  • 举报
回复
http://blog.csdn.net/wh62592855/archive/2009/11/13/4805919.aspx

使用alter session set current_schema='XXX'语句
uniconwang 2010-02-03
  • 打赏
  • 举报
回复
回楼上:可是不仅仅是我要访问a用户的标,b、c、d、e、f、…… 等用户都需要彼此互访的啊。之前是听说可以通过schema来实现的。
BenChiM888 2010-02-03
  • 打赏
  • 举报
回复
必须明确的是只能用同义词来解决这个问题:
1、可以让建表者给你创建和表同名的public synonym(不过这个被你否了)
2、你自己建私有同义词到目标表。 方法七楼已经说了。
一滴酒 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 suiziguo 的回复:]
附:创建同义词外的方法对我来说很不靠谱,因为库里现在就有表9500多张了,而且帐号是分配给其他人用的,我不能强迫他们每次建了表还要建一个别名吧?
先谢过了。


8K7。
但是,除了建同义词,你别无选择。
不必强迫他们为自己的表建立别名,而且也没法建。

用批量处理管理工作,SYS通过脚本循环,为每一位用户建立系统中,除自己拥有表外其他所有其他用户(应除去系统用户)表的同义词。

create  synonym usera.tablenamea for userb.tablenamea;
create  synonym userb.tablenamea for usera.tablenamea;

当然,应该只建立必要的同义词。建立同义词前,别忘记在相应表上授予最小的、必须的权限。
[/Quote]
支持!
huangyunzeng2008 2010-02-02
  • 打赏
  • 举报
回复
除了同义词没有别的办法!实际上为9500张表建立同义词不是个问题!写个小过程就能轻松搞定了!这个很难么?
suiziguo 2010-02-01
  • 打赏
  • 举报
回复
附:创建同义词外的方法对我来说很不靠谱,因为库里现在就有表9500多张了,而且帐号是分配给其他人用的,我不能强迫他们每次建了表还要建一个别名吧?
先谢过了。


8K7。
但是,除了建同义词,你别无选择。
不必强迫他们为自己的表建立别名,而且也没法建。

用批量处理管理工作,SYS通过脚本循环,为每一位用户建立系统中,除自己拥有表外其他所有其他用户(应除去系统用户)表的同义词。

create synonym usera.tablenamea for userb.tablenamea;
create synonym userb.tablenamea for usera.tablenamea;

当然,应该只建立必要的同义词。建立同义词前,别忘记在相应表上授予最小的、必须的权限。
crazylaa 2010-02-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 duqiangcise 的回复:]
我想到的只有建同义词,其他方法没有见过。
等待高手。。。
[/Quote]
同等。
duqiangcise 2010-02-01
  • 打赏
  • 举报
回复
我想到的只有建同义词,其他方法没有见过。
等待高手。。。
uniconwang 2010-02-01
  • 打赏
  • 举报
回复
唉,都说了同义词不靠谱的吗,9500多张表哪,而且他们新建的表我也不能强制他们都建别名的啊
zhangwonderful 2010-02-01
  • 打赏
  • 举报
回复
参考sql:
create or replace synonym B.A_TABLE
for A.A_TABLE;
zhangwonderful 2010-02-01
  • 打赏
  • 举报
回复
可以通过建立同义词解决。使用同义词不需要加前缀。
Denonly 2010-02-01
  • 打赏
  • 举报
回复
直接访问应该不行的吧,否则会报表或视图不存在的错误

建视图吧还是

17,377

社区成员

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

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