概要
19cより前のバージョンでは、SQL*Plusを使ってPluggable Database (PDB)に接続する際には以下の方法がありました
- tnsname.oraを設定し、リスナー経由で接続
- CDB$ROOTからALTER SESSION SET CONTAINER文を実行し、接続
今回は、19cからPDBへのOS認証がサポートされるようになったため、この点について動作確認します。
具体的には、環境変数ORACLE_PDB_SIDにPDB名を指定して接続します。
※詳細バージョンは19.7から使用可能です。
その前に、これまでのPDBへの接続方法を確認します。
(1)リスナー経由の接続
$ cat $ORACLE_HOME/network/admin/tnsnames.ora # tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. pdb1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1.oracle19c.jp)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb1.oracle19c.jp) ) ) $ sqlplus scott@pdb1 SQL*Plus: Release 19.0.0.0.0 - Production on 土 3月 27 10:55:01 2021 Version 19.8.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. パスワードを入力してください: 最終正常ログイン時間: 木 3月 25 2021 20:02:32 +09:00 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.8.0.0.0 に接続されました。 SQL> show con_name CON_NAME ------------------------------ PDB1
(2)ALTER SESSION SET CONTAINER文での接続
$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 土 3月 27 10:57:03 2021 Version 19.8.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.8.0.0.0 に接続されました。 SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> alter session set container=pdb1; セッションが変更されました。 SQL> show con_name CON_NAME ------------------------------ PDB1
【新】PDBにOS認証で接続(ORACLE_PDB_SID指定)
以降で新しい接続方法(PDBへのOS認証)を確認します。
$ export ORACLE_PDB_SID=pdb1 $ sqlplus /nolog SQL*Plus: Release 19.0.0.0.0 - Production on 土 3月 27 11:02:08 2021 Version 19.8.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. SQL> conn /as sysdba 接続されました。 SQL> show con_name CON_NAME ------------------------------ PDB1
留意事項(ORACLE_PDB_SID)
- "AS SYSDBA"を指定しないユーザーを使ったPDB接続はできない。※通常ユーザーでの接続はできない
- 事前に、接続先CDBを選択するため、環境変数ORACLE_SIDが必要
- 環境変数ORACLE_PDB_SIDに存在しないPDB名を指定した場合は、CDB$ROOTに接続される
- PDBがマウント状態でも接続可能