SQLコマンドを使用したユーザ作成
Oracle12cからマルチテナント・アーキテクチャが採用されており、以前までの手順ではユーザが作成できません。
ここではPDBに接続してユーザを作成する方法を記載します。
接続先の変更
ユーザ作成時にコンテナ・データベース(CDB)からプラガブル・データベース(PDB)に接続先を変更する必要があります。
最初に現在の接続先を確認します。
現在の接続先がCDBの場合は「CDB$ROOT」と表示されます。
sqlplus / as sysdba SQL> SHOW CON_NAME CON_NAME ------------------------------ CDB$ROOT
接続するPDBの状態を確認します。
PDB(PDB$SEED以外)の状態が「MOUNTED」と表示される場合は、PDBを起動する必要があります。
SQL> SHOW PDBS CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDBORCL MOUNTED
PDBが停止している場合は、PDBを起動します。
PDBの状態が「READ WRITE」変わったことを確認します。
SQL> ALTER PLUGGABLE DATABASE <PDB名> OPEN; プラガブル・データベースが変更されました。 SQL> SHOW PDBS CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDBORCL READ WRITE NO
PDBに接続先を変更します。
SQL> ALTER SESSION SET CONTAINER = <PDB名>; セッションが変更されました。 SQL> SHOW CON_NAME CON_NAME ------------------------------ PDBORCL
ユーザの作成
PDBに接続後にユーザを作成します。
SQL> CREATE USER <ユーザ名> IDENTIFIED BY <パスワード> ユーザーが作成されました。
作成したユーザに必要に応じて権限を付与します。
SQL> GRANT CONNECT, RESOURCE TO <ユーザ名>; -- CONNECTとRESOURCE権限を付与する場合 権限付与が成功しました。
Oracleにログインする
作成したユーザでPDBに接続するにはtnsnames.oraに定義を追加する必要があります。
<ネットサービス名> = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <ホスト名>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <PDB名>) ) )
tnsnames.oraの編集後にOracleに接続します。
sqlplus <ユーザ名>/<パスワード>@<ネットサービス名>