2014-10-30 37 views

回答

1

考虑department.employees是你的表格。

而且您已通过执行部门架构中的以下语句将用户的选择权限授予sales用户。

grant select on employees to sales; 

此声明仅给予用户/模式sales的选择权限。

但是,当用户sales尝试执行以下语句,

select * from employees; 

他会得到下面的错误,

ERROR at line 1: 
ORA-00942: table or view does not exist 

因为,employees表中不存在sales架构。它在department模式。

如果用户sales尝试执行以下语句来代替,

select * from department.employees; 

,他将获得满意的结果。

但是,在每个引用employees表的查询中加上department模式名称的前缀是开销,大多数开发人员不会理解这样做。这就是同义词来帮助的地方。

department用户通过下面的语句创建为department.employees的代名词

create public synonym employees for department.employees 

然后sales用户将能够在不加前缀的架构名称department

注意运行employees表的SELECT查询:

  1. 这里我创建了一个public的同义词。如果从同义词创建语句中省略public,则同义词对于该模式是私有的。但是,同义词和表名不能相同。
  2. 创建不同种类的同义词需要一些权限。要了解更多信息,请通过Orale Documentation
+0

感谢您给我简单的解释 – Pratsam 2014-11-03 09:39:12

相关问题