Postgres: обновить пользователя, чтобы стать суперпользователем?

В postgres, как мне изменить существующего пользователя как суперпользователя? Я не хочу удалять существующего пользователя по разным причинам.

# alter user myuser ...?

Ответ 2

Чтобы развернуть это выше и сделать краткую ссылку:

  • Чтобы сделать пользователя суперпользователем: ALTER USER username WITH SUPERUSER;
  • Чтобы пользователь больше не являлся суперпользователем: ALTER USER username WITH NOSUPERUSER;
  • Чтобы позволить пользователю создать базу данных: ALTER USER username CREATEDB;

Вы также можете использовать CREATEROLE и CREATEUSER, чтобы разрешить пользователям привилегии, не делая их суперпользователем.

Документация

Ответ 3

$su - postgres
$ psql
$ \du; для просмотра пользователя на db
выберите пользователя, который вы хотите быть суперпользователем, и:
$ ALTER USER "user" with superuser;

Ответ 4

Запустите эту команду

alter user myuser with superuser;

Если вы хотите увидеть, что разрешение для пользователя выполнило следующую команду

\du

Ответ 5

Может быть, иногда обновление до суперпользователя не может быть хорошим вариантом. Так что кроме супер пользователя есть много других опций, которые вы можете использовать. Откройте свой терминал и введите следующее:

$ sudo su - postgres
[sudo] password for user: (type your password here)
$ psql
[email protected]:~$ 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';

Ответ 6

изменить пользовательское имя пользователя суперпользователя;

Ответ 7

Вы можете создать SUPERUSER или продвигать USER
Чтобы предотвратить запись команды, вставьте перед ней пробел, но убедитесь, что ваша система поддерживает эту опцию.

$  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';"