postgresql postgres:是否将用户升级为超级用户?

yyhrrdl8  于 2022-11-04  发布在  PostgreSQL
关注(0)|答案(8)|浏览(287)

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


# alter user myuser ...?
kse8i1jr

kse8i1jr1#

ALTER USER myuser WITH SUPERUSER;

您可以在Documentation for ALTER USER上了解更多信息

zengzsys

zengzsys2#

要详细说明上述内容并快速参考:

  • 要使用户成为超级用户,请执行以下操作:ALTER USER username WITH NOSUPERUSER;
  • 要使用户不再是超级用户,请执行以下操作:ALTER USER username WITH NOSUPERUSER;
  • 要仅允许用户创建数据库,请执行以下操作:ALTER USER username CREATEDB;

您还可以使用CREATEROLECREATEUSER授予用户权限,而不使其成为超级用户。
Documentation

pxy2qtax

pxy2qtax3#

一个月一次
百万美元
$\du;用于查看数据库上的用户
选择希望成为超级用户的用户,然后:
美元ALTER USER "user" with superuser;

waxmsbnn

waxmsbnn4#

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

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

beq87vna5#

运行此命令

alter user myuser with superuser;

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

\du
hi3rlvi2

hi3rlvi26#

你可以创建一个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';"
nc1teljy

nc1teljy7#

alter user username superuser;
3df52oht

3df52oht8#

如果您是因为使用Amazon Redshift而到达此处,则不能分配SUPERUSER

ALTER USER <username> SUPERUSER;

而是指定CREATEUSER

ALTER USER <username> CREATEUSER;

显然,SUPERUSER在Amazon Redshift集群中并不是一个可用的用户赋值,这让我非常困惑。
https://docs.aws.amazon.com/redshift/latest/dg/r_superusers.html
屏幕截图显示:

相关问题