В postgres, как мне изменить существующего пользователя как суперпользователя? Я не хочу удалять существующего пользователя по разным причинам.
# alter user myuser ...?
В postgres, как мне изменить существующего пользователя как суперпользователя? Я не хочу удалять существующего пользователя по разным причинам.
# alter user myuser ...?
ALTER USER myuser WITH SUPERUSER;
Чтобы развернуть это выше и сделать краткую ссылку:
ALTER USER username WITH SUPERUSER;
ALTER USER username WITH NOSUPERUSER;
ALTER USER username CREATEDB;
Вы также можете использовать CREATEROLE
и CREATEUSER
, чтобы разрешить пользователям привилегии, не делая их суперпользователем.
$su - postgres
$ psql
$ \du;
для просмотра пользователя на db
выберите пользователя, который вы хотите быть суперпользователем, и:
$ ALTER USER "user" with superuser;
Запустите эту команду
alter user myuser with superuser;
Если вы хотите увидеть, что разрешение для пользователя выполнило следующую команду
\du
Может быть, иногда обновление до суперпользователя не может быть хорошим вариантом. Так что кроме супер пользователя есть много других опций, которые вы можете использовать. Откройте свой терминал и введите следующее:
$ 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';
изменить пользовательское имя пользователя суперпользователя;
Вы можете создать 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';"