Sql postgres:将用户升级为超级用户?

Sql postgres:将用户升级为超级用户?,sql,postgresql,Sql,Postgresql,在postgres中,如何将现有用户更改为超级用户?由于各种原因,我不想删除现有用户 # alter user myuser ...? 您可以在上阅读更多内容以展开上述内容并快速参考: 要使用户成为超级用户:使用超级用户更改用户用户名 要使用户不再是超级用户:使用NOSUPERUSER更改用户用户名 只允许用户创建数据库:ALTER user username CREATEDB 您还可以使用CREATEROLE和CREATEUSER来允许用户享有特权,而不使其成为超级用户 $su-post

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

# alter user myuser ...?

您可以在

上阅读更多内容以展开上述内容并快速参考:

  • 要使用户成为超级用户:
    使用超级用户更改用户用户名
  • 要使用户不再是超级用户:
    使用NOSUPERUSER更改用户用户名
  • 只允许用户创建数据库:
    ALTER user username CREATEDB
您还可以使用
CREATEROLE
CREATEUSER
来允许用户享有特权,而不使其成为超级用户


$
su-postgres

$
psql

$
\du查看数据库上的用户
选择要成为超级用户的用户并:
$
使用超级用户更改用户“USER”

运行此命令

alter user myuser with superuser;
如果要查看用户的权限,请运行以下命令

\du

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

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

您可以创建一个
超级用户
或升级
用户
,以适合您的情况

$ sudo -u postgres psql -c "ALTER USER myuser WITH SUPERUSER;"
或回滚

$ sudo -u postgres psql -c "ALTER USER myuser WITH NOSUPERUSER;"
要防止在设置密码时记录命令,请在命令前面插入空格,但请检查您的系统是否支持此选项


相反的操作是
用NOSUPERUSER更改用户myuser
,如何检测myuser当前是否为超级用户?
从pg_角色中选择rolname、rolsuper到@masterweilyI get:ERROR:必须是超级用户才能更改superusers@masterweily您可以使用
\du
列出所有用户/角色。在这种特定情况下,您必须将用户名放在comas中,例如
将用户“USER”改为超级用户
与超级用户一起创建角色dba
将dba授予用户名
User
username
只能在需要时使用
设置角色dba成为超级用户。日志文件中的命令仍记录在
username
下。
$ 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';"