ユーザーとデータベースの作成

PostgreSQLインストール直後は、次のものが存在している。

ユーザー
・postgres(PostgreSQLの管理者ユーザー)
データベース
・postgres
・template0
・template1

psqlコマンド

・psqlコマンドによるログイン

psql データベース名 ユーザー名

・ログアウト

\q

ユーザーの作成

・ユーザー作成

CREATE USER ユーザー名 PASSWORD 'パスワード' [CREATEDB];

CREATEDBを指定しないとデーターベース作成権限のないユーザーとなる。

・ユーザー確認

\du

今回はoduserというユーザーを作成する。

  1. postgresユーザー、postgresデータベースでログイン。

    > psql postgres postgres
    Password for user postgres: himitu
    Welcome to psql 8.3.7, the PostgreSQL interactive terminal.
    
    Type:  \copyright for distribution terms
           \h for help with SQL commands
           \? for help with psql commands
    ....
    postgres=#
    
  2. oduserユーザーを作成。

    postgres=# create user oduser password 'himitu' createdb;
    ...
    
  3. 確認

    postgres=# \du
                                   List of roles
     Role name | Superuser | Create role | Create DB | Connections | Member of
    -----------+-----------+-------------+-----------+-------------+-----------
     oduser    | no        | no          | yes       | no limit    | {}
     postgres  | yes       | yes         | yes       | no limit    | {}
     ...
    
  4. ログアウト

    postgres=# \q
    

データベースの作成

・データベース作成

CREATE DATABASE データベース名;

作成時のユーザーがそのデータベースの所有ユーザーになる。

・データベース確認

\l

今回はoduserが所有するoddtbsというデータベースを作成する。

  1. oduserユーザー、postgresデータベースでログイン。

    > psql postgres oduser
    Password for user oduser: himitu
    Welcome to psql 8.3.7, the PostgreSQL interactive terminal.
    
    Type:  \copyright for distribution terms
           \h for help with SQL commands
           \? for help with psql commands
    ...
    postgres=>
    
  2. oddtbsデータベース作成。

    postgres=> create database oddtbs;
    ...
    
  3. 確認

    postgres=> \l
            List of databases
       Name    |  Owner   | Encoding
    -----------+----------+----------
     oddtbs    | oduser   | UTF8
     postgres  | postgres | UTF8
     template0 | postgres | UTF8
     template1 | postgres | UTF8
    ...
    
  4. ログアウト

    postgres=> \q
    

\cによるログインしたまま再接続

\c データベース名 ユーザー名

・ユーザーを変更しない場合はユーザー名を省略する。
・データーベースを変更しない場合は - (ハイフン)を指定する。

  1. oduserユーザー、oddtbsデータベースでログイン。

    > psql oddtbs oduser
    Password for user oduser: himitu
    Welcome to psql 8.3.7, the PostgreSQL interactive terminal.
    
    Type:  \copyright for distribution terms
           \h for help with SQL commands
           \? for help with psql commands
    ...
    oddtbs=>
    
  2. postgresデータベース、postgresユーザーで再接続

    oddtbs=> \c postgres postgres
    Password for user postgres: himitu
    You are now connected to database "postgres" as user "postgres".
    postgres=#
    
  3. データベースはそのまま、oduserユーザーで再接続

    postgres=# \c - oduser
    Password for user oduser: himitu
    You are now connected to database "postgres" as user "oduser".
    postgres=>
    
  4. oddtbsデータベース、ユーザーはそのままで再接続

    postgres=> \c oddtbs
    You are now connected to database "oddtbs".
    oddtbs=>