设为首页 加入收藏

TOP

SYNONYMS(二)
2015-11-21 01:33:20 来源: 作者: 【 】 浏览:7
Tags:SYNONYMS

SQL> create public Synonym tt for hr.t;
create public Synonym tt for hr.t
*
第 1 行出现错误:
ORA-01031: 权限不足
SQL> grant create public synonym to hr;
授权成功。
SQL> create public Synonym tt for hr.t;
同义词已创建。

共有同义词可以被所有用户所使用

直接授予creat any synonym会怎么样呢?
SQL> grant create any synonym to hr;
授权成功。
SQL> create synonym hrt for hr.t;
同义词已创建。
SQL> create synonym hrtt for sys.t;
同义词已创建。
用户可以为sys用户创建私有同义词了
当然也可以直接:
SQL> grant create synonym to hr with admin option;
授权成功。
SQL> create synonym hrtt for sys.t;
同义词已创建。
with admin option让我们想起了权限那部分知识,oracle中很多知识是连贯的。

假如我们对同义词元对象进行ddl操作时,那又会怎么样呢?

SQL> SELECT * FROM T;


ID NAME BI
---------- ------ ----------
5
3 chao 3


SQL> select * from hrt;


ID NAME BI
---------- ------ ----------
5
3 chao 3

SQL> SELECT OBJECT_NAME, STATUS FROM ALL_OBJECTS WHERE OBJECT_NAME='HRT';


OBJECT_NAME STATUS
------------------------------ -------
HRT VALID


SQL> SELECT * FROM DBA_SYNONYMS WHERE SYNONYM_NAME='HRT';


OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK
------------------------------ ------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------------------------------------------------------
HR HRT HR T



SQL> select * from t;


ID NAME BI NUM
---------- ------ ---------- ----------
5
3 chao 3


SQL> SELECT * FROM HRT;


ID NAME BI NUM
---------- ------ ---------- ----------
5
3 chao 3


SQL> commit;


提交完成。


SQL> SELECT * FROM HRT;


ID NAME BI NUM
---------- ------ ---------- ----------
5
3 chao 3


SQL> SELECT OBJECT_NAME, STATUS FROM ALL_OBJECTS WHERE OBJECT_NAME='HRT';


OBJECT_NAME STATUS
------------------------------ -------
HRT VALID
此时同义词自动完成了编译:
SQL> ALTER SYNONYM HRT COMPILE;
同义词已变更。


oracle中很多我们查找的视图都是同义词,下面我们研究下v$version:
你可以用sql_trace的方法研究: SQL> alter session set sql_trace=true;
会话已更改。
SQL> select * from v$versioN;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> ALTER SESSION SET SQL_TRACE=FALSE;
会话已更改。

SQL> select value from v$diag_info where name='Default Trace File';
VALUE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/orcl3939/orcl3939/trace/orcl3939_ora_5705.trc
下面我们用10046事件来研究:
SQL> alter session set events '10046 trace name context forever ,level 1';


会话已更改。


SQL> select * from v$version;


BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 1
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/10/10
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇study of oracle lesson one 下一篇Datazen安装

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: