postgres:ユーザーをスーパーユーザーにアップグレードしますか?


644

postgresでは、既存のユーザーをスーパーユーザーに変更するにはどうすればよいですか?さまざまな理由で、既存のユーザーを削除したくありません。

# alter user myuser ...?

回答:


1262
ALTER USER myuser WITH SUPERUSER;

ドキュメントで詳細を読むことができます


157
反対の操作は ALTER USER myuser WITH NOSUPERUSER
d.raev 2013

2
そして、私のユーザーが現在スーパーユーザーであるかどうかをどのように検出できますか?
masterweily 2013年

20
SELECT rolname, rolsuper FROM pg_roles;@masterweilyへ
コーフィールド

6
取得:エラー:スーパーユーザーを変更するにはスーパーユーザーである必要があります
Stepan Yakovenko 14年

15
@masterweily \duすべてのユーザー/ロールを一覧表示することができます。
XåpplI'-I0llwlg'I -

63

上記を拡張してクイックリファレンスを作成するには:

  • ユーザーをスーパーユーザーにするには: ALTER USER username WITH SUPERUSER;
  • ユーザーをスーパーユーザーから除外するには: ALTER USER username WITH NOSUPERUSER;
  • ユーザーにデータベースの作成のみを許可するには: ALTER USER username CREATEDB;

CREATEROLEおよびCREATEUSERを使用して、スーパーユーザーにせずにユーザー権限を許可することもできます。

ドキュメンテーション


27

$ su - postgres
$ psql
$ \du;dbのユーザーを表示するには、
スーパーユーザーにしたいユーザーを選択します。
$ ALTER USER "user" with superuser;


この特定のケースでは、ユーザー名をコマスの中に入れる必要があります。例ALTER USER "user" WITH SUPERUSER;
Carlos.V 2017年

9

このコマンドを実行する

alter user myuser with superuser;

ユーザーへのアクセス許可を表示するには、次のコマンドを実行します

\du

8

場合によっては、スーパーユーザーへのアップグレードは適切なオプションではない可能性があります。したがって、スーパーユーザー以外にも、使用できるオプションがたくさんあります。ターミナルを開き、次のように入力します。

$ sudo su - postgres
[sudo] password for user: (type your password here)
$ psql
postgres@user:~$ psql
psql (10.5 (Ubuntu 10.5-1.pgdg18.04+1))
Type "help" for help.

postgres=# ALTER USER my_user WITH option

オプションのリストもリストします

SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB  | CREATEROLE | NOCREATEROLE |
CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION|
NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | 
[ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'timestamp'

したがって、コマンドラインでは次のようになります

postgres=# ALTER USER my_user WITH  LOGIN

または、暗号化されたパスワードを使用します。

postgres=# ALTER USER my_user  WITH ENCRYPTED PASSWORD '5d41402abc4b2a76b9719d911017c592';

または、特定の時間の後に権限を取り消します。

postgres=# ALTER USER my_user  WITH VALID UNTIL '2019-12-29 19:09:00';

4

あなたが作成しSUPERUSERたり、昇格することができるUSERので、あなたのケースのために

$ sudo -u postgres psql -c "ALTER USER myuser WITH SUPERUSER;"

またはロールバック

$ sudo -u postgres psql -c "ALTER USER myuser WITH NOSUPERUSER;"

パスワードを設定するときにコマンドがログに記録されないようにするには、その前に空白を挿入しますが、システムがこのオプションをサポートしていることを確認してください。

$  sudo -u postgres psql -c "CREATE USER my_user WITH PASSWORD 'my_pass';"
$  sudo -u postgres psql -c "CREATE USER my_user WITH SUPERUSER PASSWORD 'my_pass';"

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.