PostgreSQL用户与角色简述

简述

  • PostgreSQL通过角色(role)来控制数据库的访问权限。角色可以拥有数据库对象(比如表、函数等),并允许将这些对象的权限授予其他角色,从而实现对象访问的控制。
  • 角色(role)包含了两种概念:①具有登录权限的角色称为用户(user);②包含其他成员的角色称为组(group)。
    在这里插入图片描述

用户和组

  • 数据库使用过程中,DBA通常会创建多个用户,并根据用户的实际情况赋予权限。为了便于权限管理,可创建角色,然后将角色赋予用户。通过角色权限的授予和撤销操作,批量控制用户权限。此时的角色充当的是组(group)的概念,用户加入到这个组便拥有了这个组的权限。
  • PostgreSQL不允许两个角色互为授权。
  • PUBLIC为PostgreSQL中的特殊角色,不能将其设置为任何组的成员。

权限与继承

  • 在SQL标准中,用户和角色存在明确的差异,用户不会自动继承权限,而角色会继承权限。
  • PostgreSQL通过INHERITNOINHERIT属性来实现上述标准,只需为角色设置INHERIT属性,为用户设置NOINHERIT属性。为了兼容8.1之前的版本属性,PostgreSQL默认为所有的角色设置了INHERIT属性,因此用户默认会自动继承它所在组的权限。
  • 只有数据库的对象上的普通权限可以被继承,角色的LOGINSUPERUSERCREATEDBCREATEROLE权限被认为是特殊权限,不会被继承。

SET ROLE命令

  • 用户在登录后,可使用SET ROLE命令,让当前会话临时拥有某个角色的权限;
  • 执行该命令后,此时会话将拥有角色的权限,而不是登录用户的权限;
  • 会话过程创建的数据库对象将归角色所有,而不是登录用户所有。

案例说明

创建三个角色db_usernet_managersys_manager

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值