GaussDB-CREATE USER

65 阅读3分钟

GaussDB-CREATE USER

功能描述

创建一个带有指定密码的新用户,用户是GaussDB数据库认证的基本元素,您可以通过正确的用户名和密码登录GaussDB数据库,然后授权不同的用户拥有不同的权限,以便不同的用户进行不同的操作。

注意事项
  • 通过CREATE USER创建的用户,默认具有LOGIN权限。
  • 通过CREATE USER创建用户的同时,系统会在执行该命令的数据库中,为该用户创建一个同名的SCHEMA。
  • 系统管理员在普通用户同名SCHEMA下创建的对象,所有者为SCHEMA的同名用户(非系统管理员)。
语法格式

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

| ------------------------------------------------------------------------------------------------------------------------------------------------------- |

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/3c9383c83f8245189e143dc35b0a8717~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgamVycnl3YW5nMTk4Mw==:q75.awebp?rk3s=f64ab15b&x-expires=1772092029&x-signature=tvWG6YNkpUVyzjCDrJyC%2BdptudQ%3D)

其中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'     | 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 
``` |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#### 参数说明

-   **user_name**

    user_name为要创建的用户名称。

    取值范围:字符串,要符合[标识符命名规范](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0321.html#ZH-CN_TOPIC_0000001865746364__zh-cn_topic_0000001704458709_section14873217506)。且最大长度不超过63个字符。

    ![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/8ff0a98604e140b0bbf49520bba9aef3~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgamVycnl3YW5nMTk4Mw==:q75.awebp?rk3s=f64ab15b&x-expires=1772092029&x-signature=T4H92YoaELJlYfJeqUSU5l3mLlI%3D)

    当用户名中包含大写字母时数据库将自动转换为小写字母,如果需要创建包含大写字母的用户名则需要使用双引号括起来。

-   **password**

    登录密码。

    密码规则如下:

    -   密码默认不少于8个字符。
    -   不能与用户名及用户名倒序相同。
    -   至少包含大写字母(A~Z)、小写字母(a~z)、数字(0~9)和非字母数字字符(限定为~!@#$%^&*()-_=+\|[{}];:,<.>/?)四类字符中的三类字符。当密码中包含的字符不属于上述四种字符范围内时语句执行会报错。
    -   密码也可以是符合格式要求的密文字符串,这种情况主要用于用户数据导入场景,不推荐用户直接使用。如果直接使用密文密码,用户需要知道密文密码对应的明文,并且保证密码复杂度,数据库不会校验密文密码复杂度,直接使用密文密码的安全性由用户保证。
    -   创建用户时,应当使用单引号将用户密码括起来。

    取值范围:字符串。

CREATE USER的其他参数值请参考[CREATE ROLE参数说明](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0561.html#ZH-CN_TOPIC_0000001865745736__zh-cn_topic_0000001656059524_zh-cn_topic_0059778189_s5a43ec5742a742089e2c302063de7fe4)。

#### 示例

--创建用户jim,登录密码为********。 gaussdb=# CREATE USER jim PASSWORD '********';

--创建用户kim,登录密码为********。 gaussdb=# CREATE USER kim IDENTIFIED BY '********';

--创建用户tom。 gaussdb=# CREATE USER TOM PASSWORD '********';

--创建用户TOM。 gaussdb=# CREATE USER "TOM" PASSWORD '********';

--如果需要创建具有“创建数据库”权限的用户,则需要加CREATEDB关键字。 gaussdb=# CREATE USER dim CREATEDB PASSWORD '********';

--查看用户dim的权限。 gaussdb=# \du dim List of roles Role name | Attributes | Member of -----------+------------+----------- dim | Create DB | {} (可以看到用户dim具有CREATEDB的权限)

--修改jim用户密码。 gaussdb=# ALTER USER jim IDENTIFIED BY '**********' REPLACE '********';

--为用户jim追加CREATEROLE权限。 gaussdb=# ALTER USER jim CREATEROLE;

--查看用户jim追加的CREATEROLE权限。 gaussdb=# \du jim List of roles Role name | Attributes | Member of -----------+-------------+----------- jim | Create role | {}

--锁定jim账户。 gaussdb=# ALTER USER jim ACCOUNT LOCK;

--解锁jim账户。 gaussdb=# ALTER USER jim ACCOUNT UNLOCK;

--修改用户密码。 gaussdb=# ALTER USER dim WITH PASSWORD '********';

--修改用户名。 gaussdb=# ALTER USER dim RENAME TO lisa;

--删除用户。 gaussdb=# DROP USER kim CASCADE; gaussdb=# DROP USER jim CASCADE; gaussdb=# DROP USER lisa CASCADE; gaussdb=# DROP USER TOM CASCADE; gaussdb=# DROP USER "TOM" CASCADE;


#### 相关链接

[ALTER USER](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0516.html#ZH-CN_TOPIC_0000001865745740),[CREATE ROLE](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0561.html#ZH-CN_TOPIC_0000001865745736),[DROP USER](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0625.html#ZH-CN_TOPIC_0000001911585009)

更多详情请参考GaussDB 文档中心:<https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html>