更新时间:2024-03-06 GMT+08:00

CREATE USER

功能描述

创建一个用户。

注意事项

  • 通过CREATE USER创建的用户,默认具有LOGIN权限。
  • 通过CREATE USER创建用户的同时系统会在执行该命令的数据库中,为该用户创建一个同名的SCHEMA;其他数据库中,则不自动创建同名的SCHEMA;用户可使用CREATE SCHEMA命令,分别在其他数据库中,为该用户创建同名SCHEMA。
  • 系统管理员在普通用户同名schema下创建的对象,所有者为schema的同名用户(非系统管理员)。
  • 除系统管理员之外,其他用户即使被授权了schema的所有权限也无法在普通用户的同名schema下创建对象,除非把同名schema相关的角色权限赋予其他用户。具体操作可参考《故障排除》中的“赋予用户schema的all权限后建表仍然报”章节。

语法格式

1
CREATE USER user_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' | DISABLE };

其中option子句用于设置权限及属性等信息。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{SYSADMIN | NOSYSADMIN}
    | {AUDITADMIN | NOAUDITADMIN}
    | {CREATEDB | NOCREATEDB}
    | {USEFT | NOUSEFT}
    | {CREATEROLE | NOCREATEROLE}
    | {INHERIT | NOINHERIT}
    | {LOGIN | NOLOGIN}
    | {REPLICATION | NOREPLICATION}
    | {INDEPENDENT | NOINDEPENDENT}
    | {VCADMIN | NOVCADMIN}
    | CONNECTION LIMIT connlimit
    | VALID BEGIN 'timestamp'
    | VALID UNTIL 'timestamp'
    | RESOURCE POOL 'respool'
    | USER GROUP 'groupuser'
    | PERM SPACE 'spacelimit'
    | TEMP SPACE 'tmpspacelimit'
    | SPILL SPACE 'spillspacelimit'
    | NODE GROUP logic_cluster_name
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | SYSID uid
    | DEFAULT TABLESPACE tablespace_name
    | PROFILE DEFAULT
    | PROFILE profile_name
    | PGUSER
    | AUTHINFO 'authinfo'
    | PASSWORD EXPIRATOIN period

参数说明

  • user_name

    用户名称。

    取值范围:字符串,要符合标识符的命名规范。且最大长度不超过63个字符。

  • password

    登录密码。

    密码规则如下:

    • 密码默认不少于8个字符。
    • 不能与用户名及用户名倒序相同。
    • 至少包含大写字母(A-Z),小写字母(a-z),数字(0-9),非字母数字字符(~!@#$%^&*()-_=+\|[{}];:,<.>/?)四类字符中的三类字符。使用范围外的字符会收到告警,但依然允许创建。
    • 创建用户时,应当使用双引号或单引号将用户密码括起来。

    取值范围:字符串。

CREATE USER的其他参数值请参考CREATE ROLE参数说明

示例

创建用户jim。

1
CREATE USER jim PASSWORD '{password}';

下面语句与上面的等价。

1
CREATE USER kim IDENTIFIED BY '{password}';

如果创建有“创建数据库”权限的用户,则需要加CREATEDB关键字。

1
CREATE USER dim CREATEDB PASSWORD '{password}';

相关链接

ALTER USERCREATE ROLEDROP USER