oracle新手求救,怎样可以不使用用户名.表名查询表?

时间:2021-02-26 09:50:22
版本是oracle10g 
可不可以通过用户权限的设置实现,用户B可以向用户A一样查询表。例如:
现在:用户A,select * from tableA;
     用户B,select * from A.tableA;
之后可以实现:用户B ,select * from tableA?

求救了///

18 个解决方案

#1


进入用户A 执行grant select on tableA to B;
然后进入B 执行select * from A.tableA;

#2


create public synonym table_name for user.table_name;

#3


没看到后面。。。
select * from tableA
想在B下这样查询,首先确定B下面没有名字为tableA的对象,然后在B建立A.tableA的同义词取名为tableA

#4


正解
引用 2 楼 sleepzzzzz 的回复:
create public synonym table_name for user.table_name;

#5


要是有很多表的话是不是每个表都要取同义词?

#6


其实加上用户名也不是很麻烦。除非你的用户名非常复杂。
除非有特殊需要,如果只是为了简写而建大量同义词的话,还是不建议这么做

#7


用同义词可以实现
不过写用户名也不麻烦呀,而且看着也明白
同义词写那么多不好维护

#8


创建 public 同义词,把表的 select 权限给 public

#9


用法
create or replace synonym 表
  for 用户.表;

#10


情况是这样,其他公司人员需要访问我们的数据库中的某几个表,我们只能提供给他们一个用户,不想让他知道其他任何用户信息。
以上功能能不能通过设置用户权限实现??多谢各位了

#11


建产同义词,同义词的作用就是对于复杂困难的表名的简化或访问其它用户的表

能过用户权限可以实现,你只把对应的权限给他们就行了,还可以用视图限制他们访问的字段及查询的范围等.

#12


阿三 你也用五笔啊,哈哈,用五笔好象还不多。

#13


zxf_feng 你好,我是新手
能具体点告诉我一下通过用户权限怎么实现吗?

#14


http://topic.csdn.net/t/20040316/17/2849977.html
这里有个批量设置的例子,你看一下吧

#15


通过权限可以控制访问的表,如果连字段也要控制,就需要用视图

同义词也是可以实现的,但是建多了不好。

#16


引用楼主 songshu8199 的帖子:
版本是oracle10g 
可不可以通过用户权限的设置实现,用户B可以向用户A一样查询表。例如: 
现在:用户A,select * from tableA; 
    用户B,select * from A.tableA; 
之后可以实现:用户B ,select * from tableA? 

求救了///


1,赋予权限

2,授予select A表的权限给用户B。

#17


引用 12 楼 sleepzzzzz 的回复:
阿三 你也用五笔啊,哈哈,用五笔好象还不多。

这你都看出来了,呵呵,我是五笔打不出来的就用拼音.

赋权限,新建一个用户,然后给用户赋权限
grant connect to uusername;
grant select on t1,t2 to username;

#18


给了权限就行啊。现在的书是怎么写的...

#1


进入用户A 执行grant select on tableA to B;
然后进入B 执行select * from A.tableA;

#2


create public synonym table_name for user.table_name;

#3


没看到后面。。。
select * from tableA
想在B下这样查询,首先确定B下面没有名字为tableA的对象,然后在B建立A.tableA的同义词取名为tableA

#4


正解
引用 2 楼 sleepzzzzz 的回复:
create public synonym table_name for user.table_name;

#5


要是有很多表的话是不是每个表都要取同义词?

#6


其实加上用户名也不是很麻烦。除非你的用户名非常复杂。
除非有特殊需要,如果只是为了简写而建大量同义词的话,还是不建议这么做

#7


用同义词可以实现
不过写用户名也不麻烦呀,而且看着也明白
同义词写那么多不好维护

#8


创建 public 同义词,把表的 select 权限给 public

#9


用法
create or replace synonym 表
  for 用户.表;

#10


情况是这样,其他公司人员需要访问我们的数据库中的某几个表,我们只能提供给他们一个用户,不想让他知道其他任何用户信息。
以上功能能不能通过设置用户权限实现??多谢各位了

#11


建产同义词,同义词的作用就是对于复杂困难的表名的简化或访问其它用户的表

能过用户权限可以实现,你只把对应的权限给他们就行了,还可以用视图限制他们访问的字段及查询的范围等.

#12


阿三 你也用五笔啊,哈哈,用五笔好象还不多。

#13


zxf_feng 你好,我是新手
能具体点告诉我一下通过用户权限怎么实现吗?

#14


http://topic.csdn.net/t/20040316/17/2849977.html
这里有个批量设置的例子,你看一下吧

#15


通过权限可以控制访问的表,如果连字段也要控制,就需要用视图

同义词也是可以实现的,但是建多了不好。

#16


引用楼主 songshu8199 的帖子:
版本是oracle10g 
可不可以通过用户权限的设置实现,用户B可以向用户A一样查询表。例如: 
现在:用户A,select * from tableA; 
    用户B,select * from A.tableA; 
之后可以实现:用户B ,select * from tableA? 

求救了///


1,赋予权限

2,授予select A表的权限给用户B。

#17


引用 12 楼 sleepzzzzz 的回复:
阿三 你也用五笔啊,哈哈,用五笔好象还不多。

这你都看出来了,呵呵,我是五笔打不出来的就用拼音.

赋权限,新建一个用户,然后给用户赋权限
grant connect to uusername;
grant select on t1,t2 to username;

#18


给了权限就行啊。现在的书是怎么写的...