PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

Chapter 21. 数据库角色

Table of Contents

21.1. 数据库角色
21.2. 角色属性
21.3. 角色成员关系
21.4. 删除角色
21.5. 预定义角色
21.6. 函数与触发器安全性

PostgreSQL 使用角色(roles)的概念来统一管理数据库的访问控制权限。根据具体配置方式,一个角色既可以代表一个单独的数据库用户,也可以代表一组数据库用户组成的群组。角色可以拥有数据库对象(例如表、函数、视图等),并可以将这些对象上的操作权限授予其他角色,以精确管控谁能访问哪些资源。此外,还可以将一个角色的成员关系(membership)授予另一个角色,从而允许成员角色继承和使用该群组角色的全部权限。

角色的概念完整统摄了传统意义上的“用户”与“组”。在 PostgreSQL 8.1 之前的版本中,用户与组属于两类截然不同的物理实体;而现代版本中则只有统一的角色实体。任何角色均可作为用户登录、充当用户组,或者二者兼具。

本章系统介绍如何创建与管理角色。关于角色权限作用于各类具体数据库对象的详细规则,请参阅 Section 5.8。