ユーザー(ロール)とデータベースの作成と削除

ユーザの作成(対話形式)

データベースユーザの作成は、Linuxのシェル上で実行します。「postgres」にスイッチして、コマンドcreateuserを実行して下さい。対話形式のオプションは、とりあえず全てnにしてください。

[root@test ~]# su - postgres
-bash-4.2$ createuser -P test #新しいユーザー名(test)
新しいロールのためのパスワード: 
もう一度入力してください:
新しいロールをスーパーユーザにしますか? (y/n)
新しいロールに対してデータベースを作成する権限を与えますか? (y/n)
新しいロールに対して別のロールを作成する権限を与えますか? (y/n)

ユーザーが作成できたらpsqlで接続し、メタコマンド\duでユーザ一覧を表示して見ましょう。

-bash-4.1$ psql
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 test      |                                                            | {}
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS+| {}
           | Password valid until infinity                              | 

新しくユーザー「test」が追加されているのが確認できます。

ユーザの作成(コマンド)

対話形式ではなく、コマンドでまとめてユーザーを作成することができます。「postgres」にスイッチして、コマンドcreateuserを実行して下さい。

-bash-3.2$ createuser -S -D -R -P test
新しいロールのためのパスワード:
もう一度入力してください:

オプションは下記一覧となります。

-P パスワードを設定する。
-s スーパーユーザ権限を与える。
-S スーパーユーザ権限を与えない。
-d データベース作成権限を与える。
-D データベース作成権限を与えない。
-r ユーザ作成権限を与える。
-R ユーザ作成権限を与えない。
-l ログイン権限を与える。(デフォルト)
-d ログイン権限を与えない。

ユーザの削除

ユーザの削除はdropuserコマンドで行います。

-bash-4.2$ dropuser test
パスワード: 

データベース作成

データベース作成はcreatedbコマンドで行います。

-bash-4.2$ createdb -E UTF-8 -O test test_db #所有者testでtest_dbを作成

オプションは下記一覧となります。

-E 文字エンコード方式
-O データベースの所有者
-U PostgreSQLに接続するユーザ名

データベースが作成できたらpsqlで接続し、メタコマンド\lでデータベース一覧を表示して見ましょう。

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | 
 template0 | postgres | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 test_db  | test     | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | 
(4 rows)

データベースの削除

データベースの削除はdropdbコマンドで行います。

-bash-4.2$ dropdb test_db
パスワード:

プログラミングの必要性

フェイスブックのザッカーバーグ氏やマイクロソフトのビル・ゲイツ氏などが、プログラミングの必要性について語っています。

おすすめアイテム

「M570」以来、実に7年ぶりのロジクール製トラックボールマウス。プログラミングをするにあたって、一度使うともう元には戻れません!