CREATE USER

说明

创建一个新的数据库用户

语法

create_user ::=

user_elem ::=

参数

username

用户名

password

用户口令。

如果不使用口令认证,那么可以省略这个选项,否则该用户将不能连接到一个口令认证的服务器上。

如果使用口令认证,根据配置文件中 MIN_PASSWORD_LEN 参数的值来判断是否需要口令检查(普通模式下该参数默认值为 0,自定义范围【0-128】,安全模式下该参数默认值为 8,自定义范围【8-128】)。 当该参数等于 0 时,不进行口令检查;当该参数大于 0 时,口令长度不能小于该参数值,且密码需同时包含大写字母、小写字母、数字,或者三者之一加特殊字符。

password_auth

用户密码认证方式。

取值:MD5 或 SCRAM-SHA-256。

缺省值为 SCRAM-SHA-256

rolename

用户角色。

用户可以同时具有多个角色。

tablespace_name

用户缺省的tablespace_name名。 该用户创建的全部模式对象都将位于该tablespace中, 除非用户显示指定(参见 CREATE TABLE

缺省值为USERS。

abstime

用户有效期。 省略该参数时,用户永远有效。

可以使用date 类型或者 timestamp 类型的写法。

注解

CREATE USER在当前连接数据库中增加一个新用户。

对于创建非审计用户,创建者必须是具有创建用户权限的DBA用户。

对于创建审计用户,创建者必须是安全管理员SYSSECURE。

示例

示例1: 创建一个无口令用户

--  清理环境
DROP USER app_user1 CASCADE;

--  创建一个无口令用户
CREATE USER app_user1;

--  删除此用户
DROP USER app_user1;

示例2: 创建一个有口令用户

--  清理环境
DROP USER app_user2 CASCADE;

--  创建一个有口令用户
CREATE USER app_user2 WITH PASSWORD 'sz_oscar_55';

CREATE USER test_user2 IDENTIFIED BY sz_oscar_55;

--  删除此用户
DROP USER app_user2;
DROP USER test_user2;

示例3: 创建有期限限制的用户

--  清理环境
DROP USER app_user3 CASCADE;

--  创建一个有口令用户, 其帐号在 2049年12月31日23点59分59秒 后过期
CREATE USER app_user3 WITH PASSWORD 'sz_oscar_55' VALID UNTIL '2049-12-31 23:59:59';

--  删除此用户
DROP USER app_user3;

示例4: 创建一个DBA用户

--  清理环境
DROP USER app_user4 CASCADE;

--  创建一DBA用户
CREATE USER app_user4 WITH PASSWORD 'sz_oscar_55' ROLE sysdba;

--  删除此用户
DROP USER app_user4;

示例4: 创建用户时指定认证方式

--  清理环境
DROP USER user_with_md5 CASCADE;
DROP USER user_with_scram_sha_256 CASCADE;

--  创建用户时指定认证方式为 MD5
CREATE USER user_with_md5 WITH PASSWORD 'sz_oscar_55' USING 'MD5';

--  创建用户时指定认证方式为 SCRAM-SHA-256
CREATE USER user_with_scram_sha_256 WITH PASSWORD 'sz_oscar_55' USING 'SCRAM-SHA-256';


SELECT USENAME, AUTHTYPE FROM SYS_SHADOW WHERE USENAME = 'USER_WITH_MD5' OR USENAME = 'USER_WITH_SCRAM_SHA_256' ORDER BY USENAME;
USENAME(name)      |AUTHTYPE(int)      |
--------------------------------------
USER_WITH_MD5      |65                 |
--------------------------------------
USER_WITH_SCRAM_SHA|64                 |
_256               |                   |
总数目:2

--  删除用户
DROP USER user_with_scram_sha_256;
DROP USER user_with_md5;