LoginSignup
12
10

More than 5 years have passed since last update.

Postgresqlでスーパーユーザー権限をもったユーザーを作成する

Posted at

RailsをPostgreSQLと一緒に使い、マイグレーションなどの処理をしようとした際にActiveRecord::NoDatabaseErrorとしてFATAL: role "xxx" does not existのようなエラーに遭遇することがある。これは端的に言うとデータベースを操作するために必要なユーザー(role)が存在しないよという旨のエラーだ。これを解決するにはとりあえずスーパーユーザー権限をもったユーザーを作成してやればよい。

1. 対話型ターミナルにログイン

$ sudo -u postgres psql

2. スーパーユーザー権限のロールを作成

たとえばizumisyという名前のユーザーを作成する場合にはこのようにする。

postgres=# create role izumisy with superuser login password '';

3. ロール一覧で作成を確認

最後に\duでロールの一覧をチェックする。

postgres=# \du
                                    List of roles
 Role name  |                         Attributes                         | Member of
------------+------------------------------------------------------------+-----------
 izumisy    | Superuser                                                  | {}
 postgres   | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

問題なければ\qでターミナルを抜けておわり。

12
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
10