↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
历史版本PostgreSQL 7.2 已于 2007 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

第 7 章 数据库用户和权限

管理数据库用户及其权限在概念上类似于 管理 Unix 操作系统的 用户,但细节并不 相同。

7.1. 数据库用户 #

数据库用户在概念上与操作系统用户完全 分离。实践中维持对应关系可能方便, 但这不是必需的。数据库用户名在整个数据库集簇安装中是全局的(而不是 每个数据库单独的)。要创建用户,使用 CREATE USER SQL 命令:

CREATE USER name

name 遵循 SQL 标识符的规则:要么是 不带特殊字符的普通形式,要么用双引号括起。要移除现有的用户, 使用类似的 DROP USER 命令。

为了方便,提供了 shell 脚本 createuser 和 dropuser 作为这些 SQL 命令的包装。

为了引导 数据库系统,新初始化的 系统总是包含一个预定义的 用户。这个用户的固定 id 为 1,默认情况下(除非在运行 initdb 时更改)它与初始化该 区域的操作系统 用户同名(并且大概也被用作运行 服务器的用户)。习惯上这个 用户被命名为 postgres。要创建更多 用户,你必须先以这个初始 用户身份连接。

特定数据库连接所用的 用户名由发起 连接请求的客户端以应用 特定的方式指明。例如, psql 程序用 -U 命令行 选项指明要连接的用户。给定 客户端连接可以以哪些数据库 用户身份连接,由客户端认证 设置决定,如 第 4 章 所述。(因此, 客户端不一定只能以与其操作系统 用户同名的用户连接,就像一个人的 登录名不受其真实姓名约束 一样。)

7.1.1. 用户属性 #

数据库用户可以拥有若干定义其 权限并与客户端认证系统 交互的属性。

superuser

数据库超级用户绕过所有权限 检查。而且, 只有超级用户才能创建新 用户。要创建数据库 超级用户,使用 CREATE USER name CREATEUSER。

数据库创建

必须显式给用户创建 数据库的权限 (超级用户除外,因为超级用户绕过所有 权限检查)。要创建这样的 用户,使用 CREATE USER name CREATEDB。

password

只有当客户端 认证使用口令 认证时,口令才有意义。数据库 口令与 操作系统口令是分开的。创建 用户时用 CREATE USER name PASSWORD 'string' 指定 口令。

A user's attributes can be modified after creation with ALTER USER. See the reference pages for CREATE USER and ALTER USER for details.

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。