更新时间:2022-07-29 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';
|
父主题: DDL语法