
# CREATE USER
#### 功能描述
创建一个用户。
#### 注意事项
- 通过CREATE USER创建的用户，默认具有LOGIN权限。
- 通过CREATE USER创建用户的同时，系统会在执行该命令的数据库中，为该用户创建一个同名的SCHEMA。
- 系统管理员在普通用户同名schema下创建的对象，所有者为schema的同名用户（非系统管理员）。
 
#### 语法格式
```
CREATE USER user_name [ [ WITH ] option [ ... ] ]{ PASSWORD | IDENTIFIED BY } { 'password' [EXPIRED] | DISABLE };
```
其中option子句用于设置权限及属性等信息。
```
{SYSADMIN | NOSYSADMIN}
    | {MONADMIN | NOMONADMIN}
    | {OPRADMIN | NOOPRADMIN}
    | {POLADMIN | NOPOLADMIN}
    | {AUDITADMIN | NOAUDITADMIN}
    | {CREATEDB | NOCREATEDB}
    | {USEFT | NOUSEFT}
    | {CREATEROLE | NOCREATEROLE}
    | {INHERIT | NOINHERIT}
    | {LOGIN | NOLOGIN}
    | {REPLICATION | NOREPLICATION}
    | {PERSISTENCE | NOPERSISTENCE}
    | CONNECTION LIMIT connlimit
    | VALID BEGIN 'timestamp'
    | VALID UNTIL 'timestamp'
    | USER GROUP 'groupuser'
    | NODE GROUP logic_cluster_name
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | DEFAULT TABLESPACE tablespace_name
    | PROFILE DEFAULT
    | PROFILE profile_name
    | PGUSER
```
#### 参数说明
- **user_name**
  用户名称。
  取值范围：字符串，要符合[标识符说明](https://support.huaweicloud.com/distributed-m-comp-devg-v8-gaussdb/gaussdb-81-0040.html#ZH-CN_TOPIC_0000002558805265)，且最多为63个字符。若超过63个字符，数据库会截断并保留前63个字符当做用户名称。在创建用户时，数据库的时候会给出提示信息。用户名支持使用反引号括起来，当sql_mode设置为ANSI_QUOTES，也可以用双引号括起来。不用反引号、双引号括起来的用户名会被转换为小写。
  ![](https://support.huaweicloud.com/distributed-m-comp-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  标识符需要为字母、下划线、数字（0-9）或美元符号（$），且必须以字母（a-z）或下划线（_）开头。
  
- **password**
  登录密码。
  密码规则如下：
  - 密码默认不少于8个字符。
  
  - 不能与用户名及用户名倒序相同。
  
  - 至少包含大写字母（A-Z），小写字母（a-z），数字（0-9），非字母数字字符（限定为\~!@#$%\^\&\*()-_=+\\\|\[{}\];:,\<.\>/?）四类字符中的三类字符。
  
  - 密码也可以是符合格式要求的密文字符串，这种情况主要用于用户数据导入场景，不推荐用户直接使用。如果直接使用密文密码，用户需要知道密文密码对应的明文，并且保证密码复杂度，数据库不会校验密文密码复杂度，直接使用密文密码的安全性由用户保证。
  
  - 创建用户时，应当使用单引号将用户密码括起来。
  
  
  取值范围：字符串。
  
CREATE USER的其他参数值请参考[CREATE ROLE](https://support.huaweicloud.com/distributed-m-comp-devg-v8-gaussdb/gaussdb-81-0074.html#ZH-CN_TOPIC_0000002558925203)。
#### 示例
```
--创建用户jim，登录密码为********。
m_db=# CREATE USER jim PASSWORD '********';
--下面语句与上面的等价。
m_db=# CREATE USER kim IDENTIFIED BY '********';
--如果创建有“创建数据库”权限的用户，则需要加CREATEDB关键字。
m_db=# CREATE USER dim CREATEDB PASSWORD '********';
--将用户jim的登录密码由********修改为**********。
m_db=# ALTER USER jim IDENTIFIED BY '**********' REPLACE '********';
--为用户jim追加CREATEROLE权限。
m_db=# ALTER USER jim CREATEROLE;
--锁定jim账户。
m_db=# ALTER USER jim ACCOUNT LOCK;
--删除用户。
m_db=# DROP USER kim CASCADE;
m_db=# DROP USER jim CASCADE;
m_db=# DROP USER dim CASCADE;
```
#### 相关链接
[ALTER USER](https://support.huaweicloud.com/distributed-m-comp-devg-v8-gaussdb/gaussdb-81-0059.html#ZH-CN_TOPIC_0000002558805277)，[CREATE ROLE](https://support.huaweicloud.com/distributed-m-comp-devg-v8-gaussdb/gaussdb-81-0074.html#ZH-CN_TOPIC_0000002558925203)，[DROP USER](https://support.huaweicloud.com/distributed-m-comp-devg-v8-gaussdb/gaussdb-81-0096.html#ZH-CN_TOPIC_0000002558805301)
