当前位置:编程问答 > Unix/Linux >

OCP考题解析_007: 同义词

OCP考题解析_007: 同义词
 
    同义词是基表的别名、只在数据字典里有其定义、没有存储
       同义词为分布式数据库提供位置透明性、访问异地的资源就像访问本地的资源一样无差别  www.zzzyk.com  
       
       ㈠ 语法
          
          创建同义词的语法:
               

 
          没有带public的是私有同义词
          私有同义词就是普通用户所创建的同义词,之所以说它是私有,是因为只有创建该同义词的用户才能使用此同义词
          而公用同义词是指数据库管理员创建的,当然,公用同义词是允许所有的用户来使用的  www.zzzyk.com  
          如果要创建一个远程的数据库上的某张表的同义词,需要先创建一个Database Link,然后再使用@DB_Link_name
          
          当出现同名时、优先级如下:
          私有同义词 > 公有同义词
          基表 > 公有同义词
          存在同名对象和公共同义词时,数据库优先选择对象作为目标
          存在同名私有对象和公共对象时,数据库优先选择私有同义词作为目标
          基表与私有同义词不能同名、否则会报ORA-00955错误
          
       ㈡ 同义词的操作
          
          ① 查看同义词
[sql] 
sys@ORCL> select table_name from dict where table_name like '%SYNONYM%';  
  
TABLE_NAME  
------------------------------  
DBA_SYNONYMS  
USER_SYNONYMS  
ALL_SYNONYMS  
 
          ② 删除同义词
     
             DROP [ PUBLIC ] SYNONYM [ schema. ] 同义词名称 [ FORCE ];
             
             DROP SYNONYM SYSN_TEST;
             
             DROP PUBLIC SYNONYM PUBLIC_TEST;--当同义词的原对象被删除是,同义词并不会被删除
             
          ③ 编译同义词
             
             ALTER  SYNONYM T COMPILE; --当同义词的原对象被重新建立时,同义词需要重新编译
             对原对象进行DDL操作后,同义词的状态会变成INVALID
             当再次引用这个同义词时,同义词会自动编译,状态会变成VALID、无需人工干预,当然前提是不改变原对象的名称
             
             
       ㈢ 同义词的权限管理
       
          与同义词相关的权限有CREATE SYNONYM、CREATE ANY SYNONYM、CREATE PUBLIC SYNONYM权限
          
          ① 用户在自己的模式下创建私有同义词,这个用户必须拥有CREATE SYNONYM权限,否则不能创建私有同义词
          ② 如果需要在其它模式下创建同义词,则必须具有CREATE ANY SYNONYM的权限
          ③ 创建公有同义词则需要CREATE PUBLIC SYNONYM系统权限
          
          
       ㈣ OCP考题
 
[sql] 
Q: 16 Mary has a view called EMP_DEPT_LOC_VU that was created based on  
the EMPLOYEES, DEPARTMENTS, and LOCATIONS tables. She granted SELECT privilege to Scott  
on this view. Which option enables Scott to eliminate the need to qualify the view with the name  
MARY.EMP_DEPT_LOC_VU each time the view is referenced?  
  
A. Scott can create a synonym for the EMP_DEPT_LOC_VU by using the command   
CREATE PRIVATE SYNONYM EDL_VU   
FOR mary.EMP_DEPT_LOC_VU;   
then he can prefix the columns with this synonym.   
  
B. Scott can create a synonym for the EMP_DEPT_LOC_VU by using the command   
CREATE SYNONYM EDL_VU   
FOR mary.EMP_DEPT_LOC_VU;   
then he can prefix the columns with this synonym.   
  
C. Scott can create a synonym for the EMP_DEPT_LOC_VU by using the command   
CREATE LOCAL SYNONYM EDL_VU   
FOR mary.EMP_DEPT_LOC_VU;   
then he can prefix the columns with this synonym.   
  
D. Scott can create a synonym for the EMP_DEPT_LOC_VU by using the command   
CREATE SYNONYM EDL_VU   
ON mary(EMP_DEPT_LOC_VU);   
then he can prefix the columns with this synonym.   
  
E. Scott cannot create a synonym because synonyms can be created only for tables.   
  
F. Scott cannot create any synonym for Mary's view. Mary should create a private synonym for the view and   
grant SELECT privilege on that synonym to Scott.   
  
Answer: B  
 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,