ロールの作成

広告

では、実際にロールを作成してみます。作成するには「GRANT ROLE」を使います。構文としては下記のようになります。

CREATE ROLE name [ [ WITH ] option [ ... ] ]

ここでoptionは以下の通りです。
    
      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | CREATEUSER | NOCREATEUSER
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | VALID UNTIL 'timestamp' 
    | IN ROLE rolename [, ...]
    | IN GROUP rolename [, ...]
    | ROLE rolename [, ...]
    | ADMIN rolename [, ...]
    | USER rolename [, ...]
    | SYSID uid 

簡単に書くと下記のようになります。

CREATE ROLE role_name WITH LOGIN
CREATE ROLE role_name WITH LOGIN PASSWORD 'password'

上記はログイン可能なロールを作成した場合です。デフォルトでは「NOLOGIN」なのでログイン可能にする場合は「LOGIN」を指定して下さい。パスワード認証を行う場合は下の構文のように「PASSWORD」句の後にパスワードを指定して下さい。

上記以外のオプションとしては下記のようなものがあります。

「SUPERUSER」を指定すると、そのロールはスーパーユーザーとなります。デフォルトでは「NOSUPERUSER」です。

「CREATEDB」を指定すると、そのロールはデータベースの作成が可能となります。デフォルトでは「NOCREATEDB」です。

「CREATEROLE」を指定すると、そのロールは新しいロールの作成が可能となります。デフォルトでは「NOCREATEROLE」です。

例として「データベースの作成」が可能なロールの作成は下記のようになります。

create role testrole with createdb password='testrole';

ロールの作成

その他にも色々オプションがありますけど、必要に応じて確認していきます。

( Written by Tatsuo Ikura )