【ORACLE】ユーザー(スキーマ)を作成・変更・削除するSQL


ここではORACLEデータベースで、ユーザー(スキーマ)を作成または削除するSQLを紹介しています。

ユーザー(スキーマ)の一覧を確認する方法は↓で紹介していますので参考にしてください。
>>【ORACLE】ユーザー(スキーマ)の一覧を確認するSQL

ユーザーとは

ORACLEデータベースで操作を行うときは、あらかじめ作成しておいたユーザーでログインして操作を行います。

ユーザにはデータベースで行うことのできる操作を権限というかたちで付与して、操作を制限しています。

ユーザーに付与されている権限については↓の方法で確認が出来ます。
>>【ORACLE】ユーザに付与されている権限を確認するSQL

スキーマとは

スキーマとはテーブルやインデックス、ビューなどのオブジェクトの集まりの単位をスキーマと呼びます。

スキーマは、ORACLEデータベースではスキーマ=ユーザーとなるので、USER1スキーマというと、USER1のユーザーが所有しているオブジェクトのことを指します。

スキーマという単位でオブジェクトを区別し、他のユーザーからのオブジェクトへの操作を制限しています。

ユーザー(スキーマ)を作成するSQL

ユーザーを作成するときはCREATE USER文を使います。

ユーザーの作成するときはCREATE USER、変更はALTER USER、削除はDROP USER権限が必要です。

システム権限を付与する方法は↓で紹介していますので参考にしてください。
>>【ORACLE】システム権限を付与・取消するSQL

CREATE USER文の基本構文

CREATE USER文の基本構文は次の通りです。

CREATE USER ユーザー名
IDENTIFIED BY パスワード
[DEFAULT TABLESPACE 表領域名]
[TEMPORARY TABLESPACE 表領域名]
[QUOTA サイズ ON 表領域名]
[PROFILE プロファイル名]
[PASSWORD EXPIRE]
[ACCOUNT LOCK]
;

・「CREATE USER ユーザー名」
 作成するユーザーの名前を指定します。

・「IDENTIFIED BY パスワード」
 作成するユーザーのパスワードを設定します。

・[DEFAULT TABLESPACE 表領域名]
 表や索引などのオブジェクトを作成したときのデフォルト表領域を指定します。
 省略するとシステム表領域になります。

・[TEMPORARY TABLESPACE 表領域名]
 デフォルトの一次表領域を指定します。省略するとシステム表領域になります。

・[QUOTA サイズ ON 表領域名]
 表領域の容量制限を指定できます。
 無制限にする場合は「QUOTA UNLIMITED ON 表領域名」とします。

・[PROFILE プロファイル名]
 プロファイルを指定します。

・[PASSWORD EXPIRE]
 パスワードを期限切れにします。初回ログイン時に変更を求められます。

・[ACCOUNT LOCK]
 アカウントをロックした状態にします。

CREATE USER文のSQLサンプル

CREATE UASER文でユーザを作成するSQLのサンプルを紹介します。

次のSQLでは、「test_user01」という名前でユーザーを作成しています。
パスワードは「testuser01」、デフォルト表領域は「ts01」、デフォルト一時表領域は「ts02」です。

CREATE USER test_user01
IDENTIFIED BY testuser01
DEFAULT TABLESPACE ts01
TEMPORARY TABLESPACE ts02
;

ユーザー(スキーマ)を変更するSQL

ユーザーを変更するときはALTER USER文を使います。

基本的なパラメータはCREATE USERと同じです。

ALTER USER ユーザー名
[IDENTIFIED BY パスワード]
[DEFAULT TABLESPACE 表領域名]
[TEMPORARY TABLESPACE 表領域名]
[DEFAULT ROLE ロール名]
[QUOTA サイズ ON 表領域名]
[PROFILE プロファイル名]
[PASSWORD EXPIRE]
[ACCOUNT LOCK]
;

パスワードの変更や期限切れにするSQLサンプル

次のSQLではパスワードを変更しています。

ALTER USER test_user01 IDENTIFIED BY testuser02;

パスワードを機嫌切れにする場合は

ALTER USER test_user01 PASSWORD EXPIRE;

アカウントをロック、アンロックする

ALTER USER文でアカウントをロックすることもできます。

ALTER USER test_user01 ACCOUNT LOCK;

ロックしたアカウントはUNLOCKを指定することでアンロックできます。

ALTER USER test_user01 ACCOUNT UNLOCK;

ユーザー(スキーマ)を削除するSQL

ユーザーを削除するときはDROP USER文を使います。

DROP USER文の基本構文

DROP USER文の基本構文は次の通りです。

DROP USER ユーザー名 [CASCADE];

削除するユーザ名を指定します。
ユーザーがオブジェクトを所有している場合はCASCADEを指定し、ユーザーと所有オブジェクトを削除します。

まとめ

ユーザー(スキーマ)の作成はCREATE USER文、変更はALTER USER文、削除はDROP USER文で行います。

ユーザを作成するときは必要な権限やパスワード設定を行い、セキュリティに注意しましょう。

権限については↓でも紹介していますのでぜひ参考にしてください。
【ORACLE】権限とは?システム・オブジェクト権限について
【ORACLE】システム権限の一覧
【ORACLE】システム権限を付与・取消するSQL
【ORACLE】オブジェクト権限を付与・取消するSQL
【ORACLE】オブジェクト権限を確認するSQL
【ORACLE】ユーザに付与されている権限を確認するSQL

【ORACLE】ロールに付与されている権限を確認するSQL