「Oracle21c」「ORA-65096:共通ユーザーまたはロール名が無効です」の対処方法
環境
Oracle Database 21c Express Edition
Windows 11 Pro 21H2 64bit
エラー現象
SQL> CREATE USER arkuser
2 IDENTIFIED BY arkpwd
3 DEFAULT TABLESPACE tabsp1
4 TEMPORARY TABLESPACE temp
5 QUOTA UNLIMITED ON tabsp1;
CREATE USER arkuser
*
行1でエラーが発生しました。:
ORA-65096: 共通ユーザーまたはロール名が無効です
SQL> CREATE USER arkuser
2 IDENTIFIED BY arkpwd
3 DEFAULT TABLESPACE tabsp1
4 TEMPORARY TABLESPACE temp
5 QUOTA UNLIMITED ON tabsp1;
CREATE USER arkuser
*
行1でエラーが発生しました。:
ORA-65096: 共通ユーザーまたはロール名が無効です
SQL> CREATE USER arkuser 2 IDENTIFIED BY arkpwd 3 DEFAULT TABLESPACE tabsp1 4 TEMPORARY TABLESPACE temp 5 QUOTA UNLIMITED ON tabsp1; CREATE USER arkuser * 行1でエラーが発生しました。: ORA-65096: 共通ユーザーまたはロール名が無効です
解決方法
1.「show con_name;」で現在接続されているデータベースを確認します。
SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
SQL> show con_name; CON_NAME ------------------------------ CDB$ROOT
2.「select name, open_mode from v$pdbs;」でPDBの名前と現在のOPEN_MODEを確認します。
SQL> select name, open_mode from v$pdbs;
NAME
--------------------------------------------------------------------------------
OPEN_MODE
--------------------
PDB$SEED
READ ONLY
XEPDB1
READ WRITE
SQL> select name, open_mode from v$pdbs;
NAME
--------------------------------------------------------------------------------
OPEN_MODE
--------------------
PDB$SEED
READ ONLY
XEPDB1
READ WRITE
SQL> select name, open_mode from v$pdbs; NAME -------------------------------------------------------------------------------- OPEN_MODE -------------------- PDB$SEED READ ONLY XEPDB1 READ WRITE
3.PDBの名前が「XEPDB1」というのがわかったのでデータベースの接続先を「XEPDB1」へ変更します。
SQL> alter session set container = xepdb1;
セッションが変更されました。
SQL> alter session set container = xepdb1;
セッションが変更されました。
SQL> alter session set container = xepdb1; セッションが変更されました。
4.「show con_name;」を実行して接続先が変更されていることを確認します。
SQL> show con_name;
CON_NAME
------------------------------
XEPDB1
SQL> show con_name;
CON_NAME
------------------------------
XEPDB1
SQL> show con_name; CON_NAME ------------------------------ XEPDB1
5.ユーザーを作成します。
SQL> CREATE USER arkuser
2 IDENTIFIED BY arkpwd
3 DEFAULT TABLESPACE tabsp1
4 TEMPORARY TABLESPACE temp
5 QUOTA UNLIMITED ON tabsp1;
ユーザーが作成されました。
SQL> CREATE USER arkuser
2 IDENTIFIED BY arkpwd
3 DEFAULT TABLESPACE tabsp1
4 TEMPORARY TABLESPACE temp
5 QUOTA UNLIMITED ON tabsp1;
ユーザーが作成されました。
SQL> CREATE USER arkuser 2 IDENTIFIED BY arkpwd 3 DEFAULT TABLESPACE tabsp1 4 TEMPORARY TABLESPACE temp 5 QUOTA UNLIMITED ON tabsp1; ユーザーが作成されました。