Skill Note

平凡なエンジニアがメモ代わりにプログラミング, インフラ, ネットワークを書き綴るブログ

Oracle12cでユーザを作成する方法

      2020/04/20

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 <ユーザ名>/<パスワード>@<ネットサービス名>

Google AdSense PC

Google AdSense PC

Message

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

  関連記事

sqlserer
[SQL Server]再帰SQLで集計する

WITH(共通テーブル式)を使って集計する WITH句とは 共通テーブル式 (CTE) は、単一の SELECT、INSERT、UPDATE、DELETE、CR …

oracle
Oracle12cのPDBを自動起動にする方法

Oracle12cのプラガブル・データベース(PDB)は初期設定のままでは、毎回、手動で起動させる必要があります。 この記事ではOS起動時やOracle再起動時 …

oracle
[Oracle]端数処理、丸めの方法

ORACLEで数値の端数処理、数値丸めをする 数値を四捨五入する場合は、ROUND関数 数値を切り捨てる場合は、TRUNC関数 各関数の第2引数の値で、小数部、 …

oracle
[Oracle]Oracle Clientのアンインストール方法

Oracle Clientをレジストリを含め完全に削除することがありましたので、この記事では削除手順を記載します。 削除手順ではレジストリを変更しますので十分注 …

sqlserer
[SQLServer]形式指定で日付を取得する方法

SQLServerで形式を指定して日付を取得する 日付形式を指定するために、CONVERT関数、または、FORMAT関数を使用します。 CONVERT関数とFO …

oracle
[Oracle]トリガーの実行順序を設定する方法

FOLLOWS句を使用して実行順序を設定する 1つの表に対して同レベル(タイミング)のトリガーを複数作成することはできますが、実行順序は保証されていません。 実 …

sqlserer
[SQL Server]IDENTITYの値を初期化する

ID値の初期化(リセット)方法 IDENTITYプロパティを設定した列のID値を初期化(リセット)する方法を記載します。 現在のID値を確認する ID値を確認す …

oracle
[Oracle]ジョブをスケジューリングして定期実行する方法

DBMS_SCHEDULERパッケージを使用したジョブスケジューリング Oracleでジョブを定期実行するには、DBMS_SCHEDULERパッケージやDBMS …

db
[Database]データベースのバージョン/エディションを確認する方法

OracleとSQLServerのバージョン/エディションを確認 Oracle  SELECT * FROM V$VERSION SQLServer SELEC …

oracle
[Oracle]データベースを再構築してOracle Expressのキャラクタセットを変更する

前回の記事でCSALTERを使用したキャラクタセットの変更方法を記載しましたが、サブセットのキャラクタセットからスーパセットへの変更のみ可能でした。 この記事で …