- 1. 概要
- 2. ユーザ作成
- 3. 後から権限を付与
1. 概要
データベースを作成したり、アクセスすることができるのは、初期状態では、「postgres」ユーザのみです。
他のユーザ(「PostgreSQL」的には「ロール」)は、別途作成する必要があります。
最近(2020年12月23日)、そういうことをしていなかったので、すっかり忘れていました。
本ページは、下記のサイトを参考にさせていただきました。
「ALTER ROLE」
2. ユーザ作成
「postgres」ユーザで。
createuser [option] user
これで、ユーザを作成することができます。
オプションは、以下の通り。
オプション | 意 味 | 備考 |
-d | ロールにデータベースの作成権限を与える | |
-r | ロールにロールを作成する権限を与える | |
-s | ロールに postgres ユーザと同等の権限を与える | |
これは、開発時の仮想環境内、外部から接続負荷な状況でのことですが。
ログインユーザと同じユーザで。
sudo -u postgres createuser -s user_name
と作成すれば、開発作業が楽になります。
接続ポート番号を変更している場合は、「--port=portnumber」のオプションをつけます。
3. 後から権限を付与
では、「postgres」と同じ権限を持たないロール、あとから権限を付与するにはどうするか?
手っ取り早いのは、「dropuser」をしてから、前項の「createuser」をすればよいのですが、そのロールが所有するデータベースが存在する場合。
dropuser: エラー: ロール "role_name"の削除に失敗しました: ERROR: 他のオブジェクトが依存していますのでロール "role_name" を削除できません
と、エラーになります(この後、所有するデータベースが列挙される)。
これは、「postgres」ユーザで、下記の「SQL」を実行することになります。
alter role role_name with SUPERUSER;
|
|