我有一个角色:
CREATE ROLE x LOGIN
ENCRYPTED PASSWORD '....'
SUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
此角色已创建。
我想将其修改为:
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
将SUPERUSER
更改为NOSUPERUSER
;
是否可以在不执行Drop role
的情况下执行此操作?
答案 0 :(得分:1)
https://www.postgresql.org/docs/current/static/sql-alterrole.html
ALTER ROLE role_specification [WITH]选项[...]
其中选项可以是:
SUPERUSER | NOSUPERUSER
t=# create user su superuser;
CREATE ROLE
t=# \du+ su
List of roles
Role name | Attributes | Member of | Description
-----------+------------+-----------+-------------
su | Superuser | {} |
t=# alter user su nosuperuser;
ALTER ROLE
t=# \du+ su
List of roles
Role name | Attributes | Member of | Description
-----------+------------+-----------+-------------
su | | {} |
或使用可选的WITH:
t=# alter user su with nosuperuser;
ALTER ROLE