功能描述
创建一个用户。
注意事项
通过CREATE USER 创建的用户,默认具有LOGIN 权限。
通过CREATE USER 创建用户的同时,系统会在执行该命令的数据库中,为该用户创
建一个同名的SCHEMA。
系统管理员在普通用户同名schema 下创建的对象,
所有者为schema 的同名用户
(非系
统管理员)
。
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1085
语法格式
CREATE USER user_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ]
{ 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}
| {INDEPENDENT | NOINDEPENDENT}
| {VCADMIN | NOVCADMIN}
| {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
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1086
| 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
用户名称。
取值范围:字符串,要符合标识符的命名规范。且最大长度不超过63 个字符。
password
登录密码。
密码规则如下:
密码默认不少于8 个字符。
不能与用户名及用户名倒序相同。
至少包含大写字母(A-Z)
、小写字母(a-z)
、数字(0-9)
、非字母数字字符(限定
为~!@#$%^&*()-_=+\|[{}];:,<.>/?)四类字符中的三类字符。
密码也可以是符合格式要求的密文字符串,这种情况主要用于用户数据导入场景,
不推荐用户直接使用。
如果直接使用密文密码,
用户需要知道密文密码对应的明文,
并且保证明文密码复杂度,
数据库不会校验密文密码复杂度,
直接使用密文密码的
安全性由用户保证。
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1087
创建用户时,应当使用双引号或单引号将用户密码括起来。
取值范围:字符串。
CREATE USER 的其他参数值请参考CREATE ROLE。
示例
--创建用户jim,登录密码为xxxxxxxxx。
gbase=#CREATE USER jim PASSWORD 'xxxxxxxxx';
--下面语句与上面的等价。
gbase=#CREATE USER kim IDENTIFIED BY 'xxxxxxxxx';
--如果创建有“创建数据库”权限的用户,则需要加CREATEDB 关键字。
gbase=#CREATE USER dim CREATEDB PASSWORD 'xxxxxxxxx';
--将用户jim 的登录密码由xxxxxxxxx 修改为Abcd@123。
gbase=#ALTER USER jim IDENTIFIED BY 'Abcd@123' REPLACE 'xxxxxxxxx';
--为用户jim 追加CREATEROLE 权限。
gbase=#ALTER USER jim CREATEROLE;
--将enable_seqscan 的值设置为on,设置成功后,在下一会话中生效。
gbase=#ALTER USER jim SET enable_seqscan TO on;
--重置jim 的enable_seqscan 参数。
gbase=#ALTER USER jim RESET enable_seqscan;
--锁定jim 帐户。
gbase=#ALTER USER jim ACCOUNT LOCK;
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1088
--删除用户。
gbase=#DROP USER kim CASCADE;
gbase=#DROP USER jim CASCADE;
gbase=#DROP USER dim CASCADE;
相关命令
ALTER USER,CREATE ROLE,DROP USER