PostgreSQLでユーザーの作成とデータベースの作成!SQL初心者の勉強

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

作成したデータベースが存在するか、オーナーは指定したユーザになっているか確認し問題なければ成功です。

PostgreSQL, SQL

Posted by Nakamoto