关于sql:postgres:升级用户成为超级用户?

postgres: upgrade a user to be a superuser?

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

1
# ALTER USER myuser ...?

1
ALTER USER myuser WITH SUPERUSER;

博士学位。


要展开以上内容并快速参考:

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

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

文档


$ su - postgres$ psql$\du;在数据库上查看用户选择要成为超级用户的用户,然后:$ALTER USER"user" with superuser;


运行此命令

1
ALTER USER myuser WITH SUPERUSER;

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

1
\du

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

1
2
3
4
5
6
7
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

同时列出选项列表

1
2
3
4
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'

所以在命令行中

1
postgres=# ALTER USER my_user WITH  LOGIN

或者使用加密密码。

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

或在特定时间后撤消权限。

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

更改用户用户名superuser;


您可以创建一个SUPERUSER或提升USER。要防止命令记录,请在命令前面插入空白,但请检查系统是否支持此选项。

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

对于你的案件或

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