ORACLE DATABASEでユーザを作成する方法

Oracle DataBase

ユーザ・スキーマを作る

オラクルデータベースでは作ったユーザがスキーマとなります。

今回はユーザを作り、そのユーザでログインをするまでを解説したいと思います。

 

デフォルト親ユーザでログインをする。

sqlplusやA5SQLなどのクライアントツールを使ってください。
今回はsqlplusを使う方法を解説します。

 

コマンドプロンプトを立ち上げて、下記のDOSコマンドを入力します。

 

 

プラガルデータベースにセッションを変更する

インストール時に設定したプラガルデータベースにセッションのコンテナを変更する

 

「マルチテナントデータベース」と「プラガルデータベース」について

この見出しのここから先のトピックはオラクルDBの仕組みの話・補足情報なので
単純にユーザを作る手順を知りたいだけの方は飛ばしてください。

Oracle Database 12c以降に「CDB」と「PDB」という機能があります。

マルチテナントデータベースとは

CDB = Oracle Multitenant Container Database

「 複数のデータベースを1つのインスタンスに統合できる 」 といった機能となります。
もう少しかみ砕いて説明すると
「 データベースの中に、子となるデータベースを複数作成することができる 」 機能です。

この機能によって、複数のDBのメモリ・CPUなどのリソースを共同に利用できることが可能になり
データベース全体のリソース使用量の効率が上がります。

 

プラガルデータベースとは

PDB = Pluggable DataBases

単一のデーターベースに複数のデータベースを統合するためのデータベース・コンテナ

 

SGAとは

SGA = System Global Area

Oracleデータベース(以下、Oracle)起動時に確保されるメモリ領域です。
SGAは、複数のユーザからの処理要求を効率よく実行するために共有されるメモリ領域であり、
いくつかの領域で構成されています。

 

ショッピングモールを例に説明します。

通常ショッピングモールには、複数のテナントや店舗が入っており、トイレは各店舗ごとではなく、ショッピングモール全体で共有利用しています。

共同で利用することで各店舗の費用負担が減りますし
モールにはトイレ以外にもエレベータ、防災センターなど共有利用している設備はたくさんあります。

 

 

よって、ルートユーザ(OracleDBがデフォルトで用意するもの)ではなく、ローカルのユーザを作る際にはCDBから先のPDBに移ってからユーザを作る必要があります。

CDBのままユーザを作ろうとすると下記のようなエラーになります。

 

ユーザをcreateする

セッションのコンテナをPDBに変更したら、いよいよユーザをクリエイト文で作ります。

 

CREATE USER test_user    作成するユーザ名 ⇒ オラクルではユーザがスキーマにもなる
IDENTIFIED BY Dd12128863   ユーザのパスワード
DEFAULT TABLESPACE users    テーブルを作るためのデータ保存領域の設定
TEMPORARY TABLESPACE temp  一時保存領域の設定
quota unlimited on users    領域の容量制限の設定

 

作ったユーザに権限を与える

 

create session 作成ユーザでDBに接続するための権限
create table 作成ユーザにテーブル作成権限を与える
create view 作成ユーザにVIEW作成権限を与える
create sequence 作成ユーザにシーケンス作成権限を与える
create trigger 作成ユーザにデータベース・トリガー作成権限を与える
create synonym 作成ユーザにパブリック・シノニム作成権限を与える
unlimited tablespace 作ったユーザが作れるテーブルの容量制限を無限にする

 

tnsnames.oraにプラガルデータベースの設定を記述する

下記のディレクトリの「tnsnames.ora」という設定ファイルに作ったPDBの設定を追加します

%ORACLE_HOME%network\admin

※%ORACLE_HOME% = データベースをインストールした場所

 

下記のようにデフォルトではCDB(ORCL)の設定の記述しかありません。

 

こちらに下記のようにPDBの設定を記述します

※IPアドレスはオラクルサーバーを設置したマシンのIPをご自身で調べていただいて記述ください。※自分で作成したPDBの名前をSERVICE_NAME に書いてください

 

作成したユーザでログインする

このようにログインができます

テーブル作成権限も与えているのでテーブルをcreateすることもできます。

 

 

コメント