oracle同一个表 如何建2个用户访问

来源:百度知道 编辑:UC知道 时间:2024/09/22 07:51:26
表空间名为"Ta"
用户分为"a"和"b",
给他们 connect ,resource 权限,并且绑定表空间"Ta"
用"a用户"建立表"T1"
用"b用户"执行"select * from T1" 则出现错误 "表或视图不存在"
1.用"b用户"执行"select * from a.T1"
这个是可以,但是如果程这样写了以后,以后改数据库的用户名就有问题了。程序的每个地方都要改。还有其他方法吗?
2.每个用户下都要创建这个表才行的,那就不是同一个表了嘛,
大哥。。。。

每个用户下都要创建这个表才行的。这个用户不是我们常规认识的那个意思。
这里的用户是表的所有者,不同的用户之间是独立的。

前面的回答都没有说到点子上,以下是正解:
b用户可以为表a.T1建一个同义词T1 这样b用户执行"select * from T1" 就等同于"select * from a.T1" 了。
具体建同义词的语句如下
create public synonym T1 for a.T1;

两个方案:
1.为表建立别名,在程序中用别名,改了用户名只需要改别名那里的对应关系.
2.看你的描述所有用户的表结构都是一样的,不知道你存的什么.可以考虑只建一个表,用视图控制用户所查询的只是自己相关的信息.

用"b用户"执行"select * from a.T1"