English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
まず基本的な使い方について説明します:
まず11G前に実行する
conn / as sysdba;
create user test identified by test;
ORA-65096: 公用ユーザー名またはロール名が無効です。
公式ドキュメントを確認すると、「一般ユーザーを作成しようとするときは、C##またはc##で始まる必要があります」とあります。この時、心に疑問が湧いてきます。一般ユーザーとは何ですか?とりあえず成功したことを考えてみましょう。
create C##user test identified by test;
作成成功
SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
select con_id, dbid, NAME, OPEN_MODE from v$pdbs;
CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
2 4066409480 PDB$SEED READ ONLY
3 2270995695 PDBORCL MOUNTED
SQL> alter session set container=PDBORCL;
その場合、create user test identified by test;でユーザーを作成することで十分です。
CDBとPDBはORACLE 12Cの非常に明るい新しい機能は、彼らの導入により、伝統的なORACLEデータベース管理の理念が多く変わりました。ここでは、cdbとpdbの管理方法の基本的な部分を挙げました。
cdbとpdbの関係図
ORACLE 12Cバージョン
SQL> select * from v$version; バナー CON_ID -------------------------------------------------------------------------------- ---------- Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64ビット プロダクション 0 PL/SQL リリース 12.1.0.1.0 - 生産 0 CORE 12.1.0.1.0 プロダクション 0 TNS for Linux: バージョン 12.1.0.1.0 - 生産 0 NLSRTL バージョン 12.1.0.1.0 - 生産 0
生産を開始/終了します
SQL> startup ORACLEインスタンスが起動しました。 全体システムグローバルエリア 597098496 バイト 固定サイズ 2291072 バイト 可変サイズ 272632448 バイト データベースバッファ 314572800バイト リドデータバッファ 7602176 バイト データベースがマウントされました。 データベースがオープンしました。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE ---------- ---------- ------------------------------ ---------- 2 4048821679 PDB$SEED READ ONLY 3 3313918585 PDB1 MOUNTED 4 3872456618 PDB2 MOUNTED SQL> alter PLUGGABLE database pdb1 open; プラグゲイブルデータベースが変更されました。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE ---------- ---------- ------------------------------ ---------- 2 4048821679 PDB$SEED READ ONLY 3 3313918585 PDB1 READ WRITE 4 3872456618 PDB2 MOUNTED SQL> alter PLUGGABLE database pdb1 close; プラグゲイブルデータベースが変更されました。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE ---------- ---------- ------------------------------ ---------- 2 4048821679 PDB$SEED READ ONLY 3 3313918585 PDB1 MOUNTED 4 3872456618 PDB2 MOUNTED SQL> alter PLUGGABLE database all open; プラグゲイブルデータベースが変更されました。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE ---------- ---------- ------------------------------ ---------- 2 4048821679 PDB$SEED READ ONLY 3 3313918585 PDB1 READ WRITE 4 3872456618 PDB2 READ WRITE SQL> alter PLUGGABLE database all close; プラグゲイブルデータベースが変更されました。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE ---------- ---------- ------------------------------ ---------- 2 4048821679 PDB$SEED READ ONLY 3 3313918585 PDB1 MOUNTED 4 3872456618 PDB2 MOUNTED SQL> alter session set container=pdb1; セッションが変更されました。 SQL> startup プラグゲイブルデータベースがオープンしました。 SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE ---------- ---------- ------------------------------ ---------- 3 3313918585 PDB1 READ WRITE
pdbの管理はcdbで行うことも、pdbで行うこともできます。cdbで行う場合、PLUGGABLEキーワードが必要です。pdbの場合、通常のデータベースと同じように直接行います。
pdbへのログイン
[oracle@xifenfei ~]$ lsnrctl status LSNRCTL for Linux: バージョン 12.1.0.1.0 - Production on 12-MAY-2013 08:07:02 著作権 (c) 1991, 2013, Oracle. 全ての権利は保留です。 接続先 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xifenfei)(PORT=1521))) LISTENERのSTATUS ------------------------ エイリアス LISTENER バージョン TNSLSNR for Linux: バージョン 12.1.0.1.0 - 生産 開始日 11-MAY-2013 18:30:54 Uptime 0日 13 hr. 36 最小. 8 sec トレースレベル 無 セキュリティ ON: ローカルOS認証 SNMP 無 リスナーパラメータファイル /u01/app/grid/product/12.1/network/admin/listener.ora Listener Log File /u01/app/grid/diag/tnslsnr/xifenfei/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xifenfei)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=xifenfei)(PORT=5500)) (Security=(my_wallet_directory=/u01/oracle/12.1/db_1/admin/cdb/xdb_wallet))(Presentation=HTTP)(Session=RAW)) Services Summary... Service "+ASM" has 1 instance(s). Instance "+ASM", status READY, has 1 handler(s) for this service... Service "cdb" has 1 instance(s). Instance "cdb", status READY, has 1 handler(s) for this service... Service "cdbXDB" has 1 instance(s). Instance "cdb", status READY, has 1 handler(s) for this service... Service "pdb1" has 1 instance(s). Instance "cdb", status READY, has 1 handler(s) for this service... Service "pdb2" has 1 instance(s). Instance "cdb", status READY, has 1 handler(s) for this service... The command completed successfully [oracle@xifenfei ~]$ tnsping pdb1 TNS Ping Utility for Linux: Version 12.1.0.1.0 - Production on 12-MAY-2013 08:07:09 著作権 (c) 1997, 2013, Oracle. 全ての権利は保留です。 Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xifenfei (PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb1))) OK (20 msec) [oracle@xifenfei ~]$ sqlplus sys/xifenfei@pdb1 as sysdba SQL*Plus: Release 12.1.0.1.0 Production on Sun May 12 08:08:02 2013 著作権 (c) 1982, 2013, Oracle. 全ての権利は保留です。 接続先: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64ビット生産 パーティションング、自動ストレージ管理、OLAP、高度な分析 そして Real Application Testing オプション SQL> show con_name; CON_NAME ------------------------------ PDB1 [oracle@xifenfei ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production on Sun May 12 08:09:14 2013 著作権 (c) 1982, 2013, Oracle. 全ての権利は保留です。 接続先: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64ビット生産 パーティションング、自動ストレージ管理、OLAP、高度な分析 そして Real Application Testing オプション SQL> alter session set container=pdb1; セッションが変更されました。 SQL> show con_name; CON_NAME ------------------------------ PDB1
pdb は alter session container を使ってアクセスすることもできますし、tns モードで直接ログインすることもできます
ユーザーを作成
SQL> show con_name; CON_NAME ------------------------------ CDB$ROOT SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs; CON_ID DBID NAME OPEN_MODE ---------- ---------- ------------------------------ ---------- 2 4048821679 PDB$SEED READ ONLY 3 3313918585 PDB1 READ WRITE 4 3872456618 PDB2 MOUNTED SQL> create user xff identified by xifenfei; ユーザー xff を xifenfei で識別 * ERROR at line 1: ORA-65096: invalid common user or role name SQL> !oerr ora 65096 65096, 00000, "invalid common user or role name" // *原因: 一般的なユーザーやロールの名前で作成しようと試みました // これは一般的なユーザーやロールには有効ではありません。さらに、 // ユーザー名とロール名の通常のルール、一般的なユーザーとロール // 名前はC##またはc##で始まり、ASCII文字のみで構成されなければなりません。 // 文字。 // *アクション: 有効な一般的なユーザーやロール名を指定してください。 // SQL> create user c##xff identified by xifenfei; User created. SQL> SELECT USERNAME,CON_ID,USER_ID FROM CDB_USERS WHERE USERNAME='C##XFF'; USERNAME CON_ID USER_ID ---------- ---------- ---------- C##XFF 1 103 C##XFF 3 104 SQL> alter session set container=pdb1; セッションが変更されました。 SQL> show con_name CON_NAME ------------------------------ PDB1 SQL> create user xff identified by xifenfei; User created. SQL> create user c##abc identified by xifenfei; create user c##abc identified by xifenfei * ERROR at line 1: ORA-65094: 无効なローカルユーザーやロール名
ユーザーの作成はデフォルトでcontainer=allであり、cdbではグローバルユーザー(C##で始まる)を作成することができます。このユーザーはcdbおよびすべてのpdbで作成されます(ただし、pdb内のグローバルユーザーは別途権限を付与する必要があります。pdb内ではローカルユーザーのみを作成できます。
ユーザー権限付与
SQL> grant connect to c##xff; 権限付与に成功しました。 SQL> select GRANTEE,con_id from cdb_ROLE_PRIVS where GRANTED_ROLE='CONNECT' AND GRANTEE='C##XFF'; GRANTEE CON_ID ------------------------------ ---------- C##XFF 1 SQL> grant resource to c##xff container=all; 権限付与に成功しました。 SQL> select GRANTEE,con_id from cdb_ROLE_PRIVS where GRANTED_ROLE='RESOURCE' AND GRANTEE='C##XFF'; GRANTEE CON_ID ------------------------------ ---------- C##XFF 1 C##XFF 3
ユーザー権限はデフォルトで、現在のcontainerにのみ与えられます。cdbではcontainer=allを指定することもできます。すべてのオープンなpdbに存在するユーザーに対して、権限を与えることができます。
パラメータの変更
SQL> alter system set open_cursors=;500 container=all; System altered. SQL> conn sys/xifenfei@pdb1 as sysdba Connected. SQL> show parameter open_cursors; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ open_cursors 整数 500 SQL> alter system set open_cursors=;100; alter system set open_cursors=;100 * ERROR at line 1: ORA-01219: database or pluggable database not open: queries allowed on fixed tables or views only SQL> alter database open; Database altered. SQL> alter system set open_cursors=;100; System altered. SQL> show parameter open_cursors; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ open_cursors 整数 100 SQL> conn / as sysdba Connected. SQL> show parameter open_cursors; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ open_cursors 整数 500
ここでは、cdbで変更すると、pdbがそれを継承するのを見ることができます。pdbで変更すると、pdbがcdbから継承したパラメータの意味が上書きされます。
声明:本文の内容はインターネットから取得され、著作権者に帰属します。インターネットユーザーにより自発的に貢献し、自己でアップロードされた内容であり、本サイトは所有権を有しないものであり、人工編集は行われていません。著作権侵害を疑われる内容がある場合は、メールを送信して:notice#oldtoolbag.com(メール送信時は、#を@に変更してください)で通報してください。関連する証拠を提供し、一旦確認されると、本サイトは即座に侵害を疑われるコンテンツを削除します。