2013年7月2日火曜日

Oracle 12c プラガブル・データベースにsqlplusで接続してみた。

Oracle 12c のプラガブル・データベースがどのように見えるのか気になったので
ためしに、作成したプラガブル・データベース(PDB)にsqlplusで接続してみました。


今回の構成は、下記のように、
1つのコンテナ・データベース(CDB)に
2つのプラガブル・データベースが接続されています。

コンテナ・データベース: CDB$ROOT
                |-- プラガブル・データベース1: PDBORCL
                |-- プラガブル・データベース2: PDB2ORCL

※ホスト名はRACっぽいですが、シングル構成です


まず、1つめのPDB「pdborcl」に接続して、DBユーザとテーブル作成してみます。
[oracle@rac12c1 ~]$ sqlplus system/password@localhost/pdborcl
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jul 2 07:38:37 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Last Successful login time: Tue Jul 02 2013 07:31:06 +09:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> show con_name
CON_NAME
------------------------------
PDBORCL  ★PDB「PDBORCL」にログインしている。

SQL> create user TEST_PDBORCL identified by pass_word;
User created.

SQL> grant connect,resource to TEST_PDBORCL;
Grant succeeded.

SQL> select username from dba_users where username = 'TEST_PDBORCL';
USERNAME
--------------------------------------------------------------------------------
TEST_PDBORCL

SQL> create table TEST_PDBORCL.TAB_PDBORCL(col1 varchar2(10));
Table created.
SQL> select table_name from dba_tables where table_name = 'TAB_PDBORCL';
TABLE_NAME
--------------------------------------------------------------------------------
TAB_PDBORCL

2つめのPDB「pdb2orcl」にsqlplus接続してみました。
1つめのPDBで作成したDBユーザとテーブルは、2つめのPDBからは見えません。
[oracle@rac12c1 ~]$ sqlplus system/password@localhost/pdb2orcl
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jul 2 07:49:52 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Last Successful login time: Tue Jul 02 2013 07:19:29 +09:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> show con_name
CON_NAME
------------------------------
PDB2ORCL

SQL> select username from dba_users where username = 'TEST_PDBORCL';
no rows selected    ★他のPDBで作成したDBユーザは見えていない

SQL> select table_name from dba_tables where table_name = 'TAB_PDBORCL';
no rows selected    ★他のPDBで作成したテーブルは見えていない

コンテナ・データベース(CDB$ROOT)に接続しても、PDBで作成したDBユーザとテーブルは見えません。
[oracle@rac12c1 ~]$ sqlplus system/password@localhost/orcl
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jul 2 07:58:38 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Last Successful login time: Tue Jul 02 2013 07:32:05 +09:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT

SQL> select username from dba_users where username = 'TEST_PDBORCL';
no rows selected    ★PDBで作成したDBユーザは見えていない

SQL> select table_name from dba_tables where table_name = 'TAB_PDBORCL';
no rows selected    ★PDBで作成したテーブルは見えていない

以上、ためしにプラガブル・データベースに接続してみました。

0 件のコメント:

コメントを投稿