1229Create schema synonym in Oracle 12c

[20141229]Create schema synonym in Oracle 12c.txt

链接:

http://www.dbi-services.com/index.php/blog/entry/create-schema-synonym-in-oracle-unsupported-feature

--如果我们查看12c的cataudit.sql文件,可以发现如下:

/* SCHEMA SYNONYMS will be added in 12g */
-- insert into audit_actions values (222, 'CREATE SCHEMA SYNONYM');
-- insert into audit_actions values (224, 'DROP SCHEMA SYNONYM');

--虽然注解了,说明oracle可能在某个时候可能会支持,给schema建立别名的方式。自己测试看看:

SYS@test01p> @ver1

PORT_STRING                    VERSION        BANNER                                                                               CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0           12.1.0.1.0     Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0

SYS@test01p> create schema synonym scottx for scott;
create schema synonym scottx for scott
              *
ERROR at line 1:
ORA-00901: invalid CREATE command

SYS@test01p> @hide synonym
old  10:  and lower(a.ksppinm) like lower('%&1%')
new  10:  and lower(a.ksppinm) like lower('%synonym%')
NAME                       DESCRIPTION                                                        DEFAULT_VALUE  SESSION_VALUE  SYSTEM_VALUE
-------------------------- ------------------------------------------------------------------ -------------- -------------- ---------------
_enable_schema_synonyms    enable DDL operations (e.g. creation) involving schema synonyms    TRUE           FALSE          FALSE
_synonym_repoint_tracing   whether to trace metadata comparisons for synonym repointing       TRUE           FALSE          FALSE

--修改看看,不支持pluggable数据库。
SYS@test01p> alter system set "_enable_schema_synonyms" = true scope=spfile;
alter system set "_enable_schema_synonyms" = true scope=spfile
*
ERROR at line 1:
ORA-65040: operation not allowed from within a pluggable database

SYS@test> alter system set "_enable_schema_synonyms" = true scope=spfile;
System altered.

--重启看看.

SYSTEM@test01p> create schema synonym scottx for scott;
Schema synonym created.

--OK,建立成功
SYSTEM@test01p> select * from scottx.dept;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

--看看一些视图的情况:
SYSTEM@test01p> select user_id,username from dba_users where username like 'SCOTT%';
   USER_ID USERNAME
---------- --------------------
       109 SCOTT

SYS@test01p> select user#,name,type#,ctime,spare2 from sys.user$ where name like 'SCOTT%';

     USER# NAME                      TYPE# CTIME                   SPARE2
---------- -------------------- ---------- ------------------- ----------
       109 SCOTT                         1 2013-06-28 11:35:40
       119 SCOTTX                        3 2014-12-29 21:32:41        109

--猜测一下,通过spare2建立关联。

SCOTT@test01p> create table scottx.dept as select * from dept;
create table scottx.dept as select * from dept
                    *
ERROR at line 1:
ORA-00955: name is already used by an existing object

SCOTT@test01p> create table scottx.deptx as select * from dept;
Table created.

SCOTT@test01p> select owner,object_name from dba_objects where object_name='DEPTX';
OWNER  OBJECT_NAME
------ --------------------
SCOTT  DEPTX

--可以发现对象属于scott用户,scottx仅仅是一个别名。

--truuncate看看:
SCOTT@test01p> truncate table scott.deptx;
Table truncated.

SCOTT@test01p> select * from scott.deptx;
no rows selected

SCOTT@test01p> select * from scottx.deptx;
select * from scottx.deptx
                     *
ERROR at line 1:
ORA-08103: object no longer exists

--有点小bug,毕竟没有公开。

SCOTT@test01p> alter system flush shared_pool;
System altered.

SCOTT@test01p> select * from scottx.deptx;
no rows selected

SYS@test01p> select user#,name,password,ctime,spare2,spare4 from sys.user$ where name like 'SCOTT%';
     USER# NAME                 PASSWORD             CTIME                   SPARE2 SPARE4
---------- -------------------- -------------------- ------------------- ---------- --------------------------------------------------------------------------------
       109 SCOTT                57964D8CE8DC6EB1     2013-06-28 11:35:40            S:0202A6123C4EF872E3EE499D93635FBA5C57EAAB2668B671FFD145F2C7D6;H:AFB3A8C4DBB1F9C
                                                                                    3271E68E986F0772B

       120 SCOTTX                                    2014-12-29 21:54:11        109

--没有口令在scottx上。使用scott的口令无法登录。
SYS@test01p> alter USER SCOTTX  IDENTIFIED BY 123;
alter USER SCOTTX  IDENTIFIED BY 123
           *
ERROR at line 1:
ORA-01918: user 'SCOTTX' does not exist

SYSTEM@test01p> alter session set current_schema=scottx;
Session altered.

SYSTEM@test01p> select * from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

--收尾:
SCOTT@test01p> drop schema synonym scottx ;
drop schema synonym scottx
*
:wERROR at line 1:
ORA-42297: cannot drop a schema synonym for a schema of a user who is currently connected

--自己无法删除。换sys用户测试:
SYS@test01p> drop schema synonym scottx ;
drop schema synonym scottx
*
ERROR at line 1:
ORA-42297: cannot drop a schema synonym for a schema of a user who is currently connected

--噢,还有1个用户scott没有退出。退出后ok。

SYS@test01p> drop schema synonym scottx ;
Schema synonym dropped.

--这项功能主要用在什么场合呢?一般的应用很少使用schema。好像意义不大。

时间: 2024-08-26 19:29:51

1229Create schema synonym in Oracle 12c的相关文章

Oracle 12c多租户特性详解:从Schema到PDB的变化与隔离

(题图来自Oracle VP , Sally Piao的摄影佳作,感谢摄影师授权) 编辑手记:Oracle 12c的多租户特性是Oracle Database历史上最重要的革新之一,在云时代这一特性展现出强大的整合威力,这篇文章来自<深入解析Oracle>一书的摘录. 在Oracle Database 12c版本中,一个重要的新特性:插接式数据库(Pluggable Database)被引入进来.在12c之前的版本中,Oracle数据库中的多用户管理通过Schema – 模式管理方式来实现,而

BenchmarkSQL 测试Oracle 12c TPC-C 性能

使用BenchmarkSQL测试一下Oracle 12c的TPC-C性能,同时对比一下PostgreSQL 9.5的性能. 测试机: 3 * PCI-E SSD,逻辑卷条带,XFS,数据块对齐,16核开HT,256G内存. 12c安装,配置请参考 http://blog.163.com/digoal@126/blog/static/1638770402015112281556942/ http://blog.163.com/digoal@126/blog/static/1638770402015

解决Jdbc连接oracle 12c(12.1.0.1)时快时慢的问题

某个朋友公司的客户,友情帮忙分析的.客户使用的是oracle 12c(12.1.0.1),应用通过jdbc访问发现时快时慢.但是通过sqlplus访问发现一切正常. 开始以为是防火墙问题,检查发现防火墙什么的都是禁用掉了,甚至我还修改了selinux=disable,发现问题依旧. 由于之前处理过几个类似的case,都是jdbc版本的问题,因此开始我让他们换几个jdbc版本测试下,发现问题依旧.类似如下结果: [oracle@12c_single ~]$ /oracle/product/12.1

《Oracle数据库管理与维护实战》——1.3 Oracle 12c新特性

1.3 Oracle 12c新特性 Oracle数据库管理与维护实战 纵观甲骨文全球大会和甲骨文公司的各种资讯,我们可以发现云计算和大数据是两个重要的主题,Oracle 12c则融合了这两大主题.与以往的Oracle数据库相比,Oracle 12c在16个方面进行了更新.本节将详细介绍Oracle 12c数据库中的16个新特性. 1.3.1 支持多线程模式 在Oracle 12c中,Oracle引入了多线程模式,允许在Windows平台之外的UNIX.Linux等系统使用多线程模式.结合多进程与

Oracle 12c多租户特性详解:全局用户与本地用户的原理与维护

(题图来自Oracle VP , Sally Piao的摄影佳作,感谢摄影师授权) 编辑手记:这一节我们将介绍多租户架构中用户及权限的变化,全局用户和本地用户,管理方式和内部实现,这篇文章来自<深入解析Oracle>一书的摘录. 前情回顾:Oracle 12c多租户特性详解:从Schema到PDB的变化与隔离 COMMON 和 Local 用户 无论在 CDB 和 Non-CDB 数据库中,用户都拥有一个 Schema,拥有一系列的 Schema 对象,在 CDB 中由于 PDB 的引入,用户

Oracle 12c数据库优化器统计信息收集的最佳实践

Oracle 12c数据库优化器统计信息收集的最佳实践 转载自     沃趣科技(ID:woqutech)  作者         刘金龙(译) 原文链接   http://www.oracle.com/technetwork/database/bi-datawarehousing/twp-bp-for-stats-gather-12c-1967354.pdf 导  语 Oracle优化器会为SQL语句产生所有可能的访问路径(执行计划),然后从中选择一条COST值最低的执行路径,这个cost值是

Oracle 12c 新SQL提示(hint)

Oracle 12c 新SQL提示(hint) Oracle 12c中引入了许多新特性,其中部分是和SQL相关的特性.而一些新的SQL提示也随着这些新特性被引入. enable_parallel_dml Syntax: enable_parallel_dml Description: Enable parallel dml. Same effect as "alter session enable parallel dml" SQL?? HelloDBA.com> create 

Oracle 12c PDB中碰到的DG问题

Oracle 12c中的PDB一下子让数据文件的格式复杂了一些,所以Data Guard就很有必要了,一旦出现问题,受损失的数据库是全局的.没想到在搭建Data Guard的时候还是碰到了一些小问题. 问题源自于一次PDB创建的时候,早些时候我在搭建好Data Guard后,主备库的日志应用都没有问题,过了几天,根据需求需要再添加一个PDB,导入一些数据供应用使用.按照要求创建了数据文件然后导入数据,但是查看备库的状态发现MRP异常停止了. DG Broker检测的状态如下: DGMGRL> s

使用BenchmarkSQL 测试Oracle 12c TPC-C 性能

使用BenchmarkSQL测试一下Oracle 12c的TPC-C性能,同时对比一下PostgreSQL 9.5的性能. 测试机用的是FusionIO卡,24核的CPU,192G内存. 12c安装请参考 http://blog.163.com/digoal@126/blog/static/1638770402015112281556942/ http://blog.163.com/digoal@126/blog/static/163877040201511232138735/ 下载benchm