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; 。
您还可以使用
文档
$
运行此命令
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;
您可以创建一个
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';" |