oracle 授权select 给别的用户后,为啥select的时候,还要加上表拥有者的用户名。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 授权select 给别的用户后,为啥select的时候,还要加上表拥有者的用户名。相关的知识,希望对你有一定的参考价值。

比如scott的test表的select权限授权给tony,
用tony账户登录,
直接输入
select * from test.
则会提示“ORA-00942,表或视图不存在”
但是,如果
select * from scott.test
则就可以成功。
这是为什么?
有什么方法,可以不需要加scott

参考技术A 不同用户(其实是模式)下可以有同名的表,所以你引用表的时候肯定是要加上该表所在的模式名的。同意楼上说的建立同义词的办法,这样才不需要你改动代码,只要在数据库上建立同义词即可。 参考技术B 首先,你要访问的表,不是本用户下面的表,所以你在访问的时候需要加前缀。最简单的方法就是对tony用户进行授权。
grant public to tony -----这条语句在system用户下执行追问

我在sys用户下,执行了这条语句,但是发现直接执行
select * from test 还是会出现“表或视图不存在的现象"

参考技术C 你可以在tony 这个用户下建立一个同义词追问

加同义词的话,代码改动量太大~~~~~。现在不想修改表名

本回答被提问者采纳

Oracle数据库

1.使用“||”连接多个字段,合并成一列

技术分享


2.屏蔽反复行

技术分享


3.Oracle 中伪列就像一个表列,可是它并没有存储在表中

技术分享技术分享

技术分享

技术分享


技术分享

技术分享


Rownum>3由于第一次找不到,就找不到

技术分享

技术分享

正序

技术分享

技术分享


4.查询系统下的某用户的表

技术分享

5.

(1)创建,授权,插入:

技术分享

2)授权(在用户下去查询别的用户下的表):

授权给别的用户查询:

 技术分享

 

授权给别的用户删除:


技术分享


6.撤权

 技术分享

7.查询男女

技术分享

8.导入.dmp文件

Imp  c##111/csdn  fromuser=scott  touser=c##111 file=”scott.dmp”

9.日期函数

系统时间sysdate  (返回当前日期) 

 技术分享

 

在日期上加上月数

技术分享


改动时间格式

 技术分享

 

返回之间的月数

 技术分享

 

求下一个星期一的日期

 技术分享

 

求本月的最后一天

技术分享


10.更改格式时间

 技术分享

技术分享

技术分享

技术分享

 

11.查月

技术分享


12.查询年份小于1980

 技术分享

13.查询平均数

技术分享

技术分享

14.出现文档

技术分享

技术分享


15.平均数大于2000

技术分享

技术分享


16.交叉连接

技术分享


17.左连接

技术分享

技术分享


18.等值连接

技术分享

19.自连接

技术分享

20.Union(并集)

技术分享

技术分享


21.Union  all(联合)

 技术分享

22.Intersect(相交)

技术分享


23.Minus(减去)

技术分享

技术分享


24.字符函数

将小写字母转换成大写,dual 为一虚表

 技术分享

 

将大写字母转换成小写 

 

 技术分享

将首字母大写

 技术分享

连接字符串,但没有||好用

 技术分享

截取字符串     

 技术分享

求字符串长度     

 技术分享

 替换字符串  

    技术分享

 截取后位

 

 技术分享

 

取字母个数

 

 技术分享

 

25.数值函数

 四舍五入,舍去小数  

   技术分享

  保留两位小数     

 技术分享

 对整数进行四舍五入     

 技术分享

  舍去小数。但不进位     

 技术分享

技术分享

 

  返回10%3的结果 

 技术分享

 

 取整数

 技术分享

技术分享

技术分享

技术分享





























































以上是关于oracle 授权select 给别的用户后,为啥select的时候,还要加上表拥有者的用户名。的主要内容,如果未能解决你的问题,请参考以下文章

oracle 怎样查询某用户下的所有表的表名

oracle 怎样查询某用户下的所有表的表名

Oracle 11g 中如何授权一张表某个字段的select权限给另外一个用户

Oracle数据库

oracle 赋予权限后,查询却显示表或视图不存在

求解oracle的grant语句:每个职工只对自己的记录有select权力