ユーザ・スキーマを作る
オラクルデータベースでは作ったユーザがスキーマとなります。
今回はユーザを作り、そのユーザでログインをするまでを解説したいと思います。
デフォルト親ユーザでログインをする。
sqlplusやA5SQLなどのクライアントツールを使ってください。
今回はsqlplusを使う方法を解説します。
コマンドプロンプトを立ち上げて、下記のDOSコマンドを入力します。
1 |
sqlplus SYSTEM/インストール時に設定したパスワード |
プラガルデータベースにセッションを変更する
インストール時に設定したプラガルデータベースにセッションのコンテナを変更する
1 |
alter session set container = orclpdb; |
「マルチテナントデータベース」と「プラガルデータベース」について
この見出しのここから先のトピックはオラクル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に変更したら、いよいよユーザをクリエイト文で作ります。
1 2 3 4 5 |
create user <作成ユーザー名> identified by <ログインパスワード> temporary tablespace temp quota unlimited on users ; |
CREATE USER test_user 作成するユーザ名 ⇒ オラクルではユーザがスキーマにもなる
IDENTIFIED BY Dd12128863 ユーザのパスワード
DEFAULT TABLESPACE users テーブルを作るためのデータ保存領域の設定
TEMPORARY TABLESPACE temp 一時保存領域の設定
quota unlimited on users 領域の容量制限の設定
作ったユーザに権限を与える
1 2 |
grant create session,create table,create view,create sequence,create trigger,create synonym,unlimited tablespace to <ユーザ名> ; |
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)の設定の記述しかありません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# tnsnames.ora Network Configuration File: C:\app\oracle\product\18.0.0.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora # Generated by Oracle configuration tools. LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = IPアドレス)(PORT = 1521)) ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = IPアドレス)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) |
こちらに下記のようにPDBの設定を記述します
1 2 3 4 5 6 7 8 |
ORCLPDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = IPアドレス)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orclpdb) ) ) |
※IPアドレスはオラクルサーバーを設置したマシンのIPをご自身で調べていただいて記述ください。※自分で作成したPDBの名前をSERVICE_NAME に書いてください
作成したユーザでログインする
1 |
sqlplus 作成したユーザ名/作成したパスワード@作成したPDB名(サービス名/DB名) |
このようにログインができます
テーブル作成権限も与えているのでテーブルをcreateすることもできます。
コメント