11gまでのようにOracleにアクセスして、ユーザを作成しようとしてもエラーとなる。
これは、12cからアーキテクチャーが変わって、前面にコンテナデータベースがあり、その下に複数のプラガブルデータベースがぶら下がるという形になっています。
つまり実体はプラガブルデータベースなのである。
よって、プラガブルデータベースにアクセスしてそこでユーザを作成しなければならない。
しかし、そうしてようとしてもエラーとなる。
それはデフォルトのままではプラガブルデータベースの方がオープンされていないためである。
プラガブルデータベースをオープンするコマンドは以下のようである。
SQL> conn sys@orcl as sysdba パスワードを入力してください: 接続されました。 SQL> alter pluggable database pdborcl open; プラガブル・データベースが変更されました。
sysdbaでないと権限が足りないようなので注意してください。
上記で、orclはコンテナデータベースで、pdborclがプラガブルデータベースの名前であります。
試しにデフォルトでロックされているユーザscottを使えるようにしてみましょう。
コマンドは次のようになります。
SQL> ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK;
この時、プラガブルデータベースに直接アクセスしていないとダメです。
まず現在のコンテナを確認します。
SHOW con_name;
プラガブルデータベースに接続するには次のようになります。
プラガブルデータベースをpdborclとしています。
ALTER SESSION SET CONTAINER = pdborcl;