ローカル環境で使用する開発用・テスト用のユーザーを作成します。
今回使用した環境は以下のとおりです。
- Oracle Database XE 21c
本記事で実行しているSQLは、すべてSYSTEMユーザーで実行しています。
目次
テーブルスペースを確認する
まずは使用するテーブルスペースを確認します。
-- テーブルスペースを一覧表示する
SELECT TABLESPACE_NAME, INITIAL_EXTENT FROM DBA_TABLESPACES;
| TABLESPACE_NAME | INITIAL_EXTENT |
|---|---|
| SYSTEM | 65536 |
| SYSAUX | 65536 |
| UNDOTBS1 | 65536 |
| TEMP | 1048576 |
| USERS | 65536 |
ここではDEFAULT TABLESPACEにUSERSを使用し、TEMPORARY TABLESPACEにTEMPを使用します。
ユーザーを作成する
どのテーブルスペースを使用するかが決まったら、ユーザーを作成します。
-- ユーザーを作成する
CREATE USER EXAMPLE IDENTIFIED BY PASSWORD DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP PROFILE DEFAULT;
ここではEXAMPLEというユーザー(スキーマ)をPASSWORDというパスワードで作成しています。
このままではログインすらできないユーザーですので、作成したユーザーに権限を与えます。ここではローカルでの開発用・テスト用のユーザーですので、作成しそうなオブジェクトを作成する権限は一通り与えておきます。
-- ユーザーに権限を与える
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE TRIGGER, CREATE SYNONYM, UNLIMITED TABLESPACE TO EXAMPLE;
作成したユーザー名とパスワードでログインすれば、ユーザー名と同じスキーマが使用可能になっています。
パスワードの有効期限を確認・設定する(オプション)
この手順は必須ではありませんが、念のためパスワードの有効期限を確認しておきます。プロジェクトや職場のポリシーにもよりますが、開発用・テスト用のユーザーですので、パスワードの有効期限切れにはならない方が運用が楽だと思います。
今回使用したプロファイルはDEFAULTですので、DEFAULTプロファイルの有効期限を確認します。
-- DEFAULTプロファイルの有効期限を確認する
SELECT PROFILE, RESOURCE_NAME, RESOURCE_TYPE, LIMIT FROM DBA_PROFILES WHERE RESOURCE_NAME = 'PASSWORD_LIFE_TIME' AND PROFILE = 'DEFAULT';
| PROFILE | RESOURCE_NAME | RESOURCE_TYPE | LIMIT |
|---|---|---|---|
| DEFAULT | PASSWORD_LIFE_TIME | PASSWORD | UNLIMITED |
今回はOracle XEを使用していますが、特に設定変更していない状態でUNLIMITEDになっています。
ここがUNLIMITED以外になっていて、無期限に変更したい場合は以下のSQLを実行します。
-- DEFAULTプロファイルの有効期限を無期限に変更する
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
SQL実行後に再度確認して、UNLIMITEDになっていることを確認してください。
![[Oracle]ユーザー(スキーマ)を作成する](https://t0k0sh1.com/wp-content/uploads/2023/03/21350391f98f688d557ab99d8938a90b.jpg)