控制数据库使用 / 访问管理策略 |
DBA 还可以定义一个缺省角色以将该角色分配给特定数据库的单个用户或 PUBLIC 组。当用户与该数据库建立连接后,不需要用户发出 SET ROLE 语句,该角色将自动激活。在连接时,拥有缺省角色的每个用户都具有单独为该用户授予的访问特权以及缺省角色的特权。
对于给定用户,在给定时间内只有一个 CREATE ROLE 语句定义的角色可以生效。如果同时拥有缺省角色和一个或多个其它角色的用户使用 SET ROLE 语句使非缺省角色成为活动角色,那么仅授予缺省角色(不单独对用户,对 PUBLIC 或对新活动角色授予)的任何访问特权该用户将不再有效。同一用户可以发出 SET ROLE DEFAULT语句重新激活缺省角色,但该操作会禁用用户仅通过先前启用的非缺省角色而拥有的任何特权。
如果为用户和 PUBLIC 指定了不同的缺省角色,那么用户的缺省角色优先。
为缺省角色定义和授予特权: