postgres:升级用户成为超级用户?

时间:2012-05-25 15:43:19

标签: sql postgresql

在postgres中,如何将现有用户更改为超级用户?出于各种原因,我不想删除现有用户。

# alter user myuser ...?

7 个答案:

答案 0 :(得分:1172)

ALTER USER myuser WITH SUPERUSER;

Docs.

答案 1 :(得分:60)

要扩展上述内容并快速参考:

  • 让用户成为超级用户:ALTER USER username WITH SUPERUSER;
  • 让用户不再是超级用户:ALTER USER username WITH NOSUPERUSER;
  • 只允许用户创建数据库:ALTER USER username CREATEDB;

您还可以使用CREATEROLECREATEUSER来允许用户权限,而不会让他们成为超级用户。

Documentation

答案 2 :(得分:21)

$ su - postgres
$ psql
$ \du;用于查看db的用户 选择您想要成为超级用户的用户和:
$ ALTER USER "user" with superuser;

答案 3 :(得分:8)

运行此命令

alter user myuser with superuser;

如果要查看用户的权限,请执行以下命令

\du

答案 4 :(得分:6)

有时候升级到超级用户可能不是一个好选择。 因此,除了超级用户以外,您还可以使用许多其他选项。 打开您的终端并输入以下内容:

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

答案 5 :(得分:3)

更改用户名超级用户;

答案 6 :(得分:2)

您可以创建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';"