ロール(role)とは、一般的に他のデータベースでDBユーザーと言われている物が相当します。
PostgreSQLはインストールすると自動的に「Postgres」ユーザーと「Postgres」ロールを作成します。
その後「Postgres」ユーザーでデータベースを作成したり、他の権限を持つユーザーを作成します。
Linuxの場合、ルートユーザーになると無条件で他のユーザーになれますのでそれを利用します。
具体的には以下のコマンドになります。
>su postgres
「Postgres」ユーザーになってから、実行ファイルを使いPostgreSQLにログインします。
例)実行ファイルがUSRフォルダ配下にある時(/usr/pgsql-12/bin/psql)
>/usr/pgsql-12/bin/psql -U postgres
ログインするとコマンドプロンプトの左側が「#」になりますので、すぐにわかります。
ユーザー名が「ABC」でパスワードを「1234」にする時
#CREATE ROLE ABC LOGIN PASSWORD ‘1234‘;
※上記では権限としてLOGIN(接続)を付与しています。
ロールのパスワードを変更する時は「Alter」文を使います。(ここ注意)
#alter role postgres password ‘5678‘;
※上記では管理者権限である「Postgres」のパスワードを「5678」に変更しました。
今度はデータベース(db)に対して、ユーザー(ABC)が何でもできるように権限を付与してみます。
まず権限付与対象のデータベースにチェンジします。
>\c db
これで「db」に移動しました。
db=> GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO ABC;
※上記では「db」と言う名前のデータベースに対して、スーパーユーザー権限をユーザー「ABC」に付与しました。
続きます。