CREATE USER¶
说明¶
创建一个新的数据库用户
参数¶
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;