このエントリーをはてなブックマークに追加


PostgreSQLでユーザのロールを変更する・ALTER ROLE, ALTER USER

作成したユーザのALTER ROLEをつかってロールを変更する操作例を以下に記します。
(ALTER USERはALTER ROLEの別名になっています。したがって、ALTER ROLEをALTER USERにしても同様の動作になります。) 使用したOSはCentOS6になります。
また、使用したPostgreSQLのバージョンは以下の通りです。

postgres=# select version();
                                                     version                                                      
------------------------------------------------------------------------------------------------------------------
 PostgreSQL 8.4.13 on x86_64-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit
(1 行)

関連記事・関連資料

ユーザを作成しALTER ROLEしてみる

ユーザを作成して、ALTER ROLEでスーパーユーザ権限などを付与してみます。

  • ユーザを追加し、ロール一覧を確認
    postgres=# create user sakura with password 'sakurapass';
    CREATE ROLE
    postgres=# create user tsubaki with password 'tsubakipass';
    CREATE ROLE
    postgres=# \du
                    ロール一覧
     ロール名 |        属性        | メンバー 
    ----------+--------------------+----------
     postgres | スーパーユーザ     | {}
              : ロールを作成できる   
              : DBを作成できる       
     sakura   |                    | {}
     tsubaki  |                    | {}
  • ユーザ(ロール)sakuraにスーパーユーザ権限を付与する ALTER ROLEを使って、sakuraにスーパーユーザ権限を付与しました。
    postgres=# ALTER ROLE sakura WITH SUPERUSER;
    ALTER ROLE
    postgres=# \du
                    ロール一覧
     ロール名 |        属性        | メンバー 
    ----------+--------------------+----------
     postgres | スーパーユーザ     | {}
              : ロールを作成できる   
              : DBを作成できる       
     sakura   | スーパーユーザ     | {}
     tsubaki  |                    | {}
    
  • ユーザ(ロール)tsubakiにスーパーユーザ、ロールを作成できる、DBを作成できるを付与してみます。
    postgres=# ALTER ROLE tsubaki WITH SUPERUSER CREATEDB CREATEROLE;
    ALTER ROLE
    postgres=# \du
                    ロール一覧
     ロール名 |        属性        | メンバー 
    ----------+--------------------+----------
     postgres | スーパーユーザ     | {}
              : ロールを作成できる   
              : DBを作成できる       
     sakura   | スーパーユーザ     | {}
     tsubaki  | スーパーユーザ     | {}
              : ロールを作成できる   
              : DBを作成できる       

ALTER ROLEの各種オプション

psqlコマンドでログインし、\hコマンドでALTER ROLEの説明を表示しました。
以下のようにオプションが多数ありますので、必要に応じて設定してください。

postgres=# \h ALTER ROLE
コマンド:     ALTER ROLE
説明:         データベースのロールを変更する
書式:
ALTER ROLE ロール名 [ [ WITH ] オプション [ ... ] ]

オプションは以下のいずれか:
    
      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | CREATEUSER | NOCREATEUSER
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | CONNECTION LIMIT 最大接続数
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'パスワード'
    | VALID UNTIL 'タイムスタンプ' 

ALTER ROLE ロール名 RENAME TO 新しい名前

ALTER ROLE ロール名 SET 設定パラメータ名 { TO | = } { 値 | DEFAULT }
ALTER ROLE ロール名 SET 設定パラメータ名 FROM CURRENT
ALTER ROLE ロール名 RESET 設定パラメータ名
ALTER ROLE ロール名 RESET ALL

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:08:00