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

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 / 7.0 / 6.5 / 6.4
历史版本PostgreSQL 8.0 已于 2010 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

CREATE USER

CREATE USER — 定义一个新的数据库用户帐号

大纲

CREATE USER name [ [ WITH ] option [ ... ] ]

where option can be:

      SYSID uid
    | CREATEDB | NOCREATEDB
    | CREATEUSER | NOCREATEUSER
    | IN GROUP groupname [, ...]
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | VALID UNTIL 'abstime'

描述

CREATE USER向一个 PostgreSQL数据库集簇中添加一个新用户。有关管理 用户和认证的信息可参阅 第 17 章和第 19 章。必须是一名数据库超级用户才能使用 这条命令。

参数

name

新用户的名称。

uid

SYSID子句可用于为新用户选择 PostgreSQL用户 ID。 通常没有必要这样做,但如果你需要重新创建某个孤儿对象的 拥有者,它可能很有用。

如果未指定,默认将使用已分配的最大用户 ID 加一 (最小值为 100)。

CREATEDB
NOCREATEDB

这些子句定义用户创建数据库的能力。如果指定CREATEDB, 则允许正在定义的用户创建他自己的数据库。指定 NOCREATEDB会禁止用户创建数据库。如果未指定, 默认值为NOCREATEDB。

CREATEUSER
NOCREATEUSER

这些子句决定是否允许用户自己创建新用户。CREATEUSER 还会把该用户变为超级用户,超级用户可以越过所有访问限制。如果未指定, 默认值为NOCREATEUSER。

groupname

一个现有组的名称,新用户将作为新成员被加入该组。可以列出多个组名。

password

设置该用户的密码。如果你不打算使用密码认证,可以省略此选项, 但这样一来,如果你日后决定改用密码认证,该用户将无法连接。 密码也可以稍后使用ALTER USER来设置或更改。

ENCRYPTED
UNENCRYPTED

这些关键字控制密码是否以加密形式存储在系统目录中。 (如果两者都未指定,默认行为由配置参数 password_encryption决定。)如果给出的密码字符串已经是 MD5 加密格式,那么无论指定的是ENCRYPTED还是 UNENCRYPTED,它都会按原样以加密形式存储 (因为系统无法解密指定的已加密密码字符串)。这样便可在转储/恢复期间 重新装载已加密的密码。

注意,较老的客户端可能缺少对 MD5 认证机制的支持,而处理加密存储的密码需要这种机制。

abstime

VALID UNTIL子句设置一个绝对时间, 在此之后该用户的密码将不再有效。如果省略此子句,密码将始终有效。

注解

使用ALTER USER来 更改用户的属性,使用DROP USER来删除用户。使用ALTER GROUP把 用户加入组或从组中移除用户。

PostgreSQL还包含一个程序createuser,它与 CREATE USER功能相同(实际上它调用的就是这条 命令),但可以在命令 shell 中运行。

VALID UNTIL子句只为密码定义过期时间,而不是为用户帐号本身定义过期时间。特别是,使用非基于密码的认证方式登录时,不会强制执行该过期时间。

示例

创建一个没有密码的用户:

CREATE USER jonathan;

创建一个带密码的用户:

CREATE USER davide WITH PASSWORD 'jw8s0F4';

创建一个密码有效期到 2004 年底的用户。 2005 年过去一秒之后,该密码就不再有效。

CREATE USER miriam WITH PASSWORD 'jw8s0F4' VALID UNTIL '2005-01-01';

创建一个允许用户创建数据库的帐号:

CREATE USER manuel WITH PASSWORD 'jw8s0F4' CREATEDB;

兼容性

CREATE USER语句是 PostgreSQL的一种扩展。 SQL 标准将用户的定义留给具体实现决定。

提交更正

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