こんにちは!シミダイ(@shimidai2100)です。
Oracle Databaseのユーザーの作成SQLとユーザー作成時のポイントを紹介します。
ユーザー作成SQLは各種メディアやブログで紹介されており、指定できるパラメータも多くあります。
この記事では初心者向けにユーザーを作成する時の重要なポイントも合わせて紹介します。
この記事の内容
- パスワード認証でユーザー作成
- OS認証でユーザー作成
- デフォルトの表領域・一時表領域・プロファイルの指定方法
Contents
ユーザー作成SQL:create user
create userの基本構文は↓になります。
1 2 3 4 |
create user <ユーザ名> identified by <パスワード> [default tablespace <デフォルト表領域>] [temporary tablespace <デフォルト一時表領域>] [profile <デフォルトプロファイル>]; |
パスワード認証でユーザー作成SQL:create user ~ identified by ~
パスワード認証のユーザー作成SQLは↓になります。
1 |
create user <ユーザー名> identified by <パスワード>; |
下がサンプルのSQL文になります。
1 |
create user test001 identified by test001; |
OracleDatabase 11gからは大文字と小文字を区別するので、バージョンアップ移行時には注意が必要です。
パスワードは、アルファベット以外の文字で始まるか、英数字、アンダースコア(_)、ドル記号($)および番号記号(#)以外の文字を含む場合は
ダブルクォーテーションで括る必要あります。
また使える記号文字は↓になります。
読み方 | 記号 |
---|---|
アットマーク | @ |
パーセント記号 | % |
プラス記号 | + |
円記号 | \ |
スラッシュ | / |
一重引用符 | ' |
感嘆符 | ! |
番号記号 | # |
ドル記号 | $ |
カレット | ^ |
疑問符 | ? |
コロン | : |
カンマ | . |
左カッコ | ( |
右カッコ | ) |
左中カッコ | { |
右中カッコ | } |
左大カッコ | [ |
右大カッコ | ] |
チルダ | ~ |
ハイフン | - |
アンダースコア | _ |
OS認証でユーザー作成SQL:create user ~ identified enternally
LinuxOSのOS認証ユーザーの「create user」
下がLinuxOSのOS認証ユーザー作成SQLになります。
1 |
create user <OS_AUTHENT_PREFIXの値><ユーザー名> identified externally; |
「identified externally」を指定します。「identified by externally」とならないように注意しましょう。
初期化パラメータ「OS_AUTHENT_PREFIX」の値はデフォルトでは「ops$」です。
下がLinux系OSの「create user」文になります。
1 |
create user ops$test001 identified externally; |
WindowsOSのOS認証ユーザーの「create user」
下がWindowsOSのOS認証ユーザー作成SQLになります。
1 |
create user "<OS_AUTHENT_PREFIXの値><Windowsのホスト名>\<ユーザー名>" identified externally; |
注意点は2つあります。
- ユーザー名をすべて大文字で記載する
- Windowsのホスト名を追記する
下がWindowsOSの「create user」文になります。
1 |
create user "OPS$WINSERVER001\TEST001" identified externally; |
デフォルト表領域を指定:default tablespace
デフォルト表領域を指定する時には、「default tablespace」句を指定します。
1 2 |
create user <ユーザー名> identified by <パスワード> default tablespace <表領域名>; |
デフォルト表領域を指定しない場合、データベースのデフォルト表領域が指定されます。
下のSQLで確認できます。
1 2 3 4 5 6 7 8 |
col PROPERTY_NAME for a30 col PROPERTY_VALUE for a100 select PROPERTY_VALUE from DATABASE_PROPERTIES where PROPERTY_NAME='DEFAULT_PERMANENT_TABLESPACE'; PROPERTY_VALUE -------------------------------------------------------------------------------- USERS |
下がサンプルのSQL文になります。
1 2 |
create user test001 identified by test001 default tablespace TESTTBS; |
デフォルト一時表領域を指定:temporary tablespace
デフォルト一時表領域を指定する時には、「temporary tablespace」句を指定します。
1 2 |
create user <ユーザー名> identified by <パスワード> temporary tablespace <一時表領域名>; |
デフォルト一時表領域を指定しない場合、データベースのデフォルト一時表領域が指定されます。
下のSQLで確認できます。
1 2 3 4 5 6 7 8 |
col PROPERTY_NAME for a30 col PROPERTY_VALUE for a100 select PROPERTY_VALUE from DATABASE_PROPERTIES where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE'; PROPERTY_VALUE ---------------------------------------------------------------------------------------------------- TEMP |
下がサンプルのSQL文になります。
1 2 |
create user test001 identified by test001 default tablespace TEMPTBS; |
デフォルトプロファイルを指定:profile
デフォルトプロファイルを指定する時には、「profile」句を指定します。
1 2 |
create user <ユーザー名> identified by <パスワード> profile <プロファイル名>; |
デフォルトプロファイルを指定しない場合、データベースのデフォルトプロファイル「DEFAULT」が指定されます。
下のSQLでデフォルトプロファイルを確認できます。
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 27 |
col RESOURCE_NAME for a30 col RESOURCE_TYPE for a30 col LIMIT for a30 select RESOURCE_NAME, RESOURCE_TYPE, LIMIT from DBA_PROFILES where PROFILE = 'DEFAULT'; RESOURCE_NAME RESOURCE_TYPE LIMIT ------------------------------ ------------------------------ ------------------------------ COMPOSITE_LIMIT KERNEL UNLIMITED SESSIONS_PER_USER KERNEL UNLIMITED CPU_PER_SESSION KERNEL UNLIMITED CPU_PER_CALL KERNEL UNLIMITED LOGICAL_READS_PER_SESSION KERNEL UNLIMITED LOGICAL_READS_PER_CALL KERNEL UNLIMITED IDLE_TIME KERNEL UNLIMITED CONNECT_TIME KERNEL UNLIMITED PRIVATE_SGA KERNEL UNLIMITED FAILED_LOGIN_ATTEMPTS PASSWORD 10 PASSWORD_LIFE_TIME PASSWORD 180 RESOURCE_NAME RESOURCE_TYPE LIMIT ------------------------------ ------------------------------ ------------------------------ PASSWORD_REUSE_TIME PASSWORD UNLIMITED PASSWORD_REUSE_MAX PASSWORD UNLIMITED PASSWORD_VERIFY_FUNCTION PASSWORD NULL PASSWORD_LOCK_TIME PASSWORD 1 PASSWORD_GRACE_TIME PASSWORD 7 INACTIVE_ACCOUNT_TIME PASSWORD UNLIMITED |
下がサンプルのSQL文になります。
1 2 |
create user test001 identified by test001 profile testprofile; |