云数据库 HybridDB for PostgreSQL的用户权限管理-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

云数据库 HybridDB for PostgreSQL的用户权限管理

云栖大讲堂 2017-11-01 11:05:30 1549


用户管理


实例创建过程中,会提示用户指定初始用户名和密码,这个初始用户为“根用户”。实例创建好后,用户可以使用该根用户连接数据库。使用 psql (PostgreSQL 或 Greenplum 的客户端工具)连接数据库后,通过 \du+ 命令可以查看所有用户的信息,示例如下:
[backcolor=transparent]注意:除了根用户,有几个用户也会被创建,包括 aurora、replicator 等。这些用户是超级用户,用于内部管理。 postgres=> \du+
                                List of roles
  Role name   |            Attributes             | Member of |  Description
--------------+-----------------------------------+-----------+---------------
root_user    |                                   |           | rds_superuser
...


目前,HybridDB for PostgreSQL 没有开放 SUPERUSER 权限,对应的是 RDS_SUPERUSER,这一点与云数据库 RDS(PostgreSQL)中的权限体系一致。所以,根用户(如上面的示例中的 root_user)具有 RDS_SUPERUSER 权限,这个权限属性只能通过查看用户的描述(Description)来识别。根用户具有如下权限:

  • 具有 CREATEROLE、CREATEDB 和 LOGIN 权限,即可以用来创建数据库和用户,但没有 SUPERUSER 权限。

  • 查看和修改其它非超级用户的数据表,执行 SELECT、UPDATE、DELTE 或更改所有者(Owner)等操作。

  • 查看其它非超级用户的连接信息、撤销(Cancel)其 SQL 或终止(Kill)其连接。

  • 执行 CREATE EXTENSION 和 DROP EXTENSION 命令,创建和删除插件。

  • 创建其他具有 RDS_SUPERUSER 权限的用户,示例如下:CRATE ROLE root_user2 RDS_SUPERUSER LOGIN PASSWORD 'xyz' ;



权限管理


用户可以在数据库(Database)、模式(Schema)、表等多个层次管理权限。例如,赋予一个用户表上的读取权限,但收回修改权限,示例如下。 GRANT SELECT ON TABLE t1 TO normal_user1;
REVOKE UPDATE ON TABLE t1 FROM normal_user1;
REVOKE DELETE ON TABLE t1 FROM normal_user1;



参考文档


关于具体的用户与权限管理方法,请参见 Managing Roles and Privileges
SQL 关系型数据库 Unix 数据库 数据安全/隐私保护 PostgreSQL
分享到
取消 提交回答
全部回答(0)
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程