PostgreSQLをMacへインストールしたので、ユーザの作成とデータベースを作成したいと思います。
ユーザーを作成する
インストール時にできたユーザでログイン
psql -U${USER} postgres
※ ${USER} は PostgreSQL をインストールした際の macOS のログインユーザのこと。
ログイン後ロールを確認するとスーパーユーザであることが確認できます。
postgres-# \du
見づらいけれどこんな感じで表示されます。
Role name | Attributes | Member of
———–+————————————————————+———–
nakamoto | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
新たにユーザを追加
Mac OSのログインユーザを使うのは望ましくないので、新たにスーパーユーザを作成します。
※スーパーユーザはなんでもできるユーザと思っておけばいい。
postgres=# create user userName with SUPERUSER;
userNameの箇所を好きな名前に変えて実行。いろいろ読んでみると「postgres」としていることが多い。
postgres=# create user postgres with SUPERUSER;
成功すると「CREATE ROLE」と表示される。
念のため、「\du」でロールを確認する。
postgres-# \du
superuserのロールを持ったユーザが作成できていればOK。
余談ですが何のロールもないユーザは以下のように作成できる。
postgres=# createuser -P userName
ログインする
先ほど作成したユーザでログインします。「\q」でログアウト後以下を実行。
psql -U userName postgres
postgres=# が表示されたらログイン完了。
データベースを作成する
ログインしている場合
データベースを作成します。
create database dataBaseName owner=userName;
dataBaseNameに作成するデータベース名、userNameに所有させたいユーザの名前に変更し実行。
「CREATE DATABASE」と表示されたら作成完了。
ログインしていない場合
ログインしている場合は「\q」でログアウト後以下を書き換え実行。
データベースを作成します。-Oはowner意味。
createdb dataBaseName -O userName;
dataBaseNameに作成するデータベース名、userNameに所有させたいユーザの名前に変更し実行。
作成したデータベースの確認
スーパーユーザでログイン後、以下を実行しデータベースの一覧を表示します。
postgres=# \l
作成したデータベースが存在するか、オーナーは指定したユーザになっているか確認し問題なければ成功です。