IT技術にまつわる実験ノート

「長編を書くより、短編を数多く完成させてください。それが上達への近道です」 by 手塚治虫

PostgreSQL でロールをスーパーユーザーに変更する

結論

以下のようにすれば良い。

f:id:matt-note:20190201190601p:plain

 

使ってみる

まずはログインする。

  • sudo -u postgres psql

 

パスワード付きでユーザーを作成する。

  • CREATE USER matt WITH LOGIN WITH PASSWORD 'password_example';

 

確認してみる。ここで matt は CREATE DB しかできない。

f:id:matt-note:20190201190911p:plain

 

ロールの属性を追加する。

  • ALTER USER matt WITH SUPERUSER;

 

確認してみる。

f:id:matt-note:20190201191058p:plain

-> Superuser 属性が追加された。

 

どういうわけか、このままだと psql コマンドでログインできない。

f:id:matt-note:20190201232154p:plain

 

まずは  postgres データベースにログインする。

 

ユーザー名と同じデータベースを作成する。

  • CREATE DATABASE matt;

 

ログアウトして、ログインしてみる。

f:id:matt-note:20190201232423p:plain

-> これでログインできるようになった。

 

matt データベースを削除しようとすると、エラーになる。

f:id:matt-note:20190201232602p:plain

 

ヘルプを見てみる。

f:id:matt-note:20190201232630p:plain

-> デフォルトで接続するデータベースが設定されているとのこと。

 

というわけで、ユーザーだけ作っても、データベースを作成するか、他のデーターベースを指定するかしないと、作成したユーザーからログインできないのであった。

結局、ユーザー名のデーターベースを作成した方が楽な気がする。