在Postgres中,我如何将现有用户更改为超级用户?出于各种原因,我不想删除现有用户。
# alter user myuser ...?
# alter user myuser ...?
为了更详细地阐述并提供快速参考:
ALTER USER username WITH SUPERUSER;
ALTER USER username WITH NOSUPERUSER;
ALTER USER username CREATEDB;
您还可以使用CREATEROLE
和CREATEUSER
为用户授权而不使其成为超级用户。
dba
:CREATE ROLE dba WITH SUPERUSER;
将dba
授权给用户名username
:GRANT dba TO username;
用户username
可以通过使用SET ROLE dba;
命令按需成为超级用户。
在日志文件中,命令仍然记录在username
下。 - Hans Ginzel$ su - postgres
$ psql
$ \du;
用于查看数据库中的用户
选择要成为超级用户的用户并执行以下操作:
$ ALTER USER "user" with superuser;
ALTER USER "user" WITH SUPERUSER;
。 - Carlos.V升级为超级用户可能并不总是一个好选择,除了超级用户之外,还有很多其他选项可供使用。打开您的终端并输入以下命令:
$ 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';
运行此命令
alter user myuser with superuser;
如果您想查看用户的权限,请执行以下命令
\du
SUPERUSER
或晋升USER
,因此对于你的情况来说。$ sudo -u postgres psql -c "ALTER USER myuser WITH SUPERUSER;"
$ sudo -u postgres psql -c "ALTER USER myuser WITH NOSUPERUSER;"
$ 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';"
alter user username superuser;
如果您看到此消息是因为您正在使用Amazon Redshift,则不能分配SUPERUSER
权限。
ALTER USER <username> SUPERUSER;
而是分配CREATEUSER
:
ALTER USER <username> CREATEUSER;
显然,在Amazon Redshift集群中,SUPERUSER
不是可用的用户分配。我对此感到非常困惑。
https://docs.aws.amazon.com/redshift/latest/dg/r_superusers.html
截图如下:
切换用户为超级用户或普通用户非常容易。 首先使用以下命令检查所有用户的权限。
\du
ALTER USER user_name WITH SUPERUSER;
ALTER USER user_name WITH NOSUPERUSER;
为了进一步理解,请查看以下教程: 如何将用户更改为PostgreSQL的超级用户
ALTER USER myuser WITH NOSUPERUSER
。 - d.raevSELECT rolname, rolsuper FROM pg_roles;
- caulfield\du
命令列出所有的用户/角色。 - XåpplI'-I0llwlg'I -