ユーザー作成

Oracle 12c 新規ユーザーの作成

Oracle12cではCDB/PDBマルチテナントアーキテクチャが導入されています。コンテナデータベース(CDB)配下で通常ユーザーを直接作成するとエラーが発生します。CDB内に作成する共通ユーザー名には、接頭辞として c## / C## を付ける必要があります。

ログイン

  1. Windowsのcmdを開き、sqlplusを起動
sqlplus
  1. スーパー管理者アカウントでデータベースにログイン
ユーザー名を入力してください: sys as sysdba
パスワードを入力: 【インストール時に設定したsysパスワードを入力】Code language: HTTP (http)

ログイン成功メッセージ:接続されました: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

ユーザー作成

誤った記述

目的:ユーザー cat、パスワード 123456 を作成
実行するSQL:

CREATE USER cat IDENTIFIED BY 123456;
ORA-65096: 共通ユーザー名またはロール名が無効ですCode language: HTTP (http)

エラー原因:現在CDBルートコンテナに接続しています。共通ユーザー(Common User)には c## 接頭辞が必須であり、cat は命名ルールに適合しません。

共通ユーザーの正しい作成方法

実行するSQL:

CREATE USER c##cat IDENTIFIED BY Bm123321;Code language: CSS (css)

実行結果:ユーザーが作成されました。

ユーザー権限の付与

誤った権限付与文
GRANT CONNECT, RESOURCE, DBA TO cat;
ORA-01917: ユーザーまたはロール 'CAT' が存在しませんCode language: JavaScript (javascript)

ユーザー名は c##cat です。権限付与時は作成時と完全に同じユーザー名を記述する必要があり、cat に省略してはいけません。

正しい権限付与文
GRANT CONNECT, RESOURCE, DBA TO c##cat;Code language: CSS (css)

権限の説明:

  1. CONNECT:基本的なログイン・接続権限
  2. RESOURCE:開発でよく使うリソースロール。表やインデックスなどのオブジェクト作成を許可
  3. DBA:完全なデータベース管理者権限(テスト環境向け。本番環境では安易に付与しないでください)

新規ユーザーでのログイン確認

  1. exit を実行しsys管理者セッションを終了、sqlplusを再起動
SQL> exitCode language: PHP (php)
  1. 誤った条件でログインを試行
ユーザー名を入力してください: cat
パスワードを入力: 123456Code language: HTTP (http)

エラー:ORA-01017: ユーザー名/パスワードが無効です; ログオンが拒否されました

  1. 正しいログイン手順
ユーザー名を入力してください: c##cat
パスワードを入力: 123456Code language: HTTP (http)

データベースに接続成功。

ユーザー作成

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です