Database OracleDB インフラ

[OracleDB] ユーザ作成の「create user」文とポイントを紹介

2018年6月17日

こんにちは!シミダイ(@shimidai2100)です。

Oracle Databaseのユーザー作成SQLとユーザー作成時のポイントを紹介します。

ユーザー作成SQLは各種メディアやブログで紹介されており、指定できるパラメータも多くあります。

この記事では初心者向けにユーザーを作成する時の重要なポイントも合わせて紹介します。

この記事の内容

  • パスワード認証でユーザー作成
  • OS認証でユーザー作成
  • デフォルトの表領域・一時表領域・プロファイルの指定方法

ユーザー作成SQL:create user

create userの基本構文は↓になります。

create user <ユーザ名> identified by <パスワード>
[default tablespace <デフォルト表領域>] 
[temporary tablespace <デフォルト一時表領域>] 
[profile <デフォルトプロファイル>];

パスワード認証でユーザー作成SQL:create user ~ identified by ~

パスワード認証のユーザー作成SQLは↓になります。

create user <ユーザー名> identified by <パスワード>;

下がサンプルのSQL文になります。

create user test001 identified by test001;

OracleDatabase 11gからは大文字と小文字を区別するので、バージョンアップ移行時には注意が必要です。

パスワードは、アルファベット以外の文字で始まるか、英数字、アンダースコア(_)、ドル記号($)および番号記号(#)以外の文字を含む場合は

ダブルクォーテーションで括る必要あります。

また使える記号文字は↓になります。

[table id=41 /]

OS認証でユーザー作成SQL:create user ~ identified enternally

LinuxOSのOS認証ユーザーの「create user」

下がLinuxOSのOS認証ユーザー作成SQLになります。

create user <OS_AUTHENT_PREFIXの値><ユーザー名> identified externally;

identified externally」を指定します。「identified by externally」とならないように注意しましょう。

初期化パラメータ「OS_AUTHENT_PREFIX」の値はデフォルトでは「ops$」です。

下がLinux系OSの「create user」文になります。

create user ops$test001 identified externally;

WindowsOSのOS認証ユーザーの「create user」

下がWindowsOSのOS認証ユーザー作成SQLになります。

create user "<OS_AUTHENT_PREFIXの値><Windowsのホスト名>\<ユーザー名>" identified externally;

注意点は2つあります。

  • ユーザー名をすべて大文字で記載する
  • Windowsのホスト名を追記する

下がWindowsOSの「create user」文になります。

create user "OPS$WINSERVER001\TEST001" identified externally;

デフォルト表領域を指定:default tablespace

デフォルト表領域を指定する時には、「default tablespace」句を指定します。

create user <ユーザー名> identified by <パスワード>
default tablespace <表領域名>;

デフォルト表領域を指定しない場合、データベースのデフォルト表領域が指定されます。

下のSQLで確認できます。

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文になります。

create user test001 identified by test001
default tablespace TESTTBS;

デフォルト一時表領域を指定:temporary tablespace

デフォルト一時表領域を指定する時には、「temporary tablespace」句を指定します。

create user <ユーザー名> identified by <パスワード>
temporary tablespace <一時表領域名>;

デフォルト一時表領域を指定しない場合、データベースのデフォルト一時表領域が指定されます。

下のSQLで確認できます。

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文になります。

create user test001 identified by test001
default tablespace TEMPTBS;

デフォルトプロファイルを指定:profile

デフォルトプロファイルを指定する時には、「profile」句を指定します。

create user <ユーザー名> identified by <パスワード>
profile <プロファイル名>;

デフォルトプロファイルを指定しない場合、データベースのデフォルトプロファイルDEFAULTが指定されます。

下のSQLでデフォルトプロファイルを確認できます。

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文になります。

create user test001 identified by test001
profile testprofile;

関連記事

-Database, OracleDB, インフラ

Copyright© shimidai2100 , 2020 All Rights Reserved.