「Oracle21c」「ORA-65096:共通ユーザーまたはロール名が無効です」の対処方法

環境
Oracle Database 21c Express Edition
Windows 11 Pro 21H2 64bit

エラー現象

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;」で現在接続されているデータベースを確認します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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を確認します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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」へ変更します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> alter session set container = xepdb1;
セッションが変更されました。
SQL> alter session set container = xepdb1; セッションが変更されました。
SQL> alter session set container = xepdb1;

セッションが変更されました。

4.「show con_name;」を実行して接続先が変更されていることを確認します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> show con_name;
CON_NAME
------------------------------
XEPDB1
SQL> show con_name; CON_NAME ------------------------------ XEPDB1
SQL> show con_name;

CON_NAME
------------------------------
XEPDB1

5.ユーザーを作成します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;

ユーザーが作成されました。

 

Oracle 21c

Posted by arkgame