登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: 用户查询表一定要加上表空间名的问题 - 同义词[zt]    [最新]     [回主站]
用户查询表一定要加上表空间名的问题 - 同义词[zt]
clq
浏览(56) - 2019-01-18 13:24:58 发表 编辑

关键字: oracle

用户查询表一定要加上表空间名的问题
ORACLE 10G 创建了一个测试用的用户TEST,打算这个用户只有查询的权限,缺省的表空间指向THGE的这个表空间,给这个用户赋予了connect 和resource的角色,权限为SELECT ANY TABLE

查询一个表, 这样写就没错
SELECT COUNT(*) FROM THGE.KTYLOG;
这样写就说这个表或视图没找到
SELECT COUNT(*) FROM KTYLOG;
不明白为何一定要加表空间名,还要给啥权限?不然的话N多SQL语句都要重写。

    
2#
1. 加的不是表空间名,而是该查询对象所属的owner名
2. 如果想要不加owner,那么你需要在TEST用户下创建同名的同义词指向那些对象
    

3#

看来理解错误了,我试一下
    

    
4#
发表于 2008-10-20 11:54 | 只看该作者
同义词
    
    
5#

一点帮助我理解的东西,以前没注意这东西
我们都知道,在oracle中对用户的管理是使用权限的方式来管理的,也就是说,如果我们想使用数据库,我们就必须得有权限,但是如果是别人将权限授予了我们,我们也是能对

数据库进行操作的,但是我们必须要已授权的表的名称前键入该表所有者的名称,所以这就是比较麻烦的,遇到这种情况,我们该怎么办呢?创建个同义词吧!这样我们就可以直

接使用同义词来使用表了。

创建同义词的具体语法是:create [public] SYNONYM synooym for object;其中synooym表示要创建的同义词的名称,object表示表,视图,序列等我们要创建同义词的对象的名

称。

CREATE PUBLIC SYNONYM public_emp FOR jward.emp;       -- jward 用户名

删除同义词
使用DROP SYNONYM语句删除不再需要的同义词 要想删除私有同义词 就省略 PUBLIC 关键字 要想删除公共同义词 就要包括PUBLIC 关键字

DROP SYNONYM emp; --删除名为emp 的私有同义词
DROP PUBLIC SYNONYM public_emp; --删除名为public_emp的公有同义词



总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1