#CREATE PROFILE
# 通用描述
CREATE PROFILE用于创建一个profile,profile为系统对用户的一组资源限制的集合。在YashanDB中,profile主要用于定义密码策略相关限制(详见安全手册密码策略描述)。
执行本语句需注意如下事项:
- 用户必须拥有CREATE PROFILE权限才能创建一个profile。
- profile本身并不包含用户信息,需使用CREATE USER或ALTER USER语句关联user与profile。
通过DBA_PROFILES视图可查询系统中所有的profile,及其内容。
YashanDB已预置一个默认的profile(名称为DEFAULT,内容为安全手册密码策略中所描述资源限制),在使用缺省语法创建新用户时,该用户都将被关联到默认的profile,受其指定的资源限制。
分布式部署只支持设置密码参数。
# 语句定义
create profile::=
password_parameters::=
resource_parameters::=
tcp_ip_parameters::=
iplist::=
# profile_name
profile名称,不可省略,且需符合YashanDB的对象命名规范。
# password_parameters
定义密码策略相关的资源限制,包括密码策略参数和参数值,同时定义多个参数以空格分隔。
当某个密码策略参数未在本语句中指定时,系统按DEFAULT值(见下文DEFAULT描述)将其生成到profile中。
# password_parameter_name
为安全手册密码策略中所定义的密码策略参数,指定其他参数将报错。
# password_parameter_value
指定密码策略参数所对应的资源限制值。
所有的参数均可设置为DEFAULT或UNLIMITED,除此之外的值依据不同参数存在不同规则。
password_parameters策略参数值
见下表:
策略参数 | 参数值规则 |
---|---|
FAILED_LOGIN_ATTEMPTS | 最大连续错误登录次数,取值需为整数,取值范围(0,2147483647)。 |
PASSWORD_LIFE_TIME | 密码生命周期,单位为天,取值需为整数,取值范围(0,24855]。 |
PASSWORD_REUSE_TIME | 密码不能被复用的时间,单位为天,取值需为整数,取值范围(0,24855]。 |
PASSWORD_REUSE_MAX | 密码被复用需要经历的变更次数,取值需为整数,取值范围(0,2147483647)。 |
PASSWORD_LOCK_TIME | 达到最大连续错误登录次数需要锁定对应用户的时间,单位为天,取值需为整数,取值范围(0,24855]。 |
PASSWORD_GRACE_TIME | 密码过期宽限期,单位为天,取值需为整数,取值范围[0,24855]。 |
DEFAULT
指定为DEFAULT表示直接采用预置的默认profile中相关配置。
UNLIMITED
指定为UNLIMITED表示不对该参数对应资源进行限制。
# resource_parameters
定义系统相关的资源限制,包括资源限制参数和参数值,同时定义多个参数以空格分隔。
当某个资源策略参数未在本语句中指定时,系统按DEFAULT值(见下文DEFAULT描述)将其生成到profile中。
# resource_parameter_name
目前包括SESSIONS_PER_USER、IDLE_TIME。
SESSIONS_PER_USER
用户最多并行会话连接数。
IDLE_TIME
用户最长空闲无操作时间,指用户登录后,连续长时间无操作达到阈值,系统将断开该会话,该会话被断开后,再执行操作将报错。
检测并断开长时间空闲会话由后台线程每个10s进行一次,因此用户最长连续空闲的时间至多可比该用户的对应阈值多10s。
该资源配置值单位为分钟。
# resource_parameter_value
指定资源参数所对应的资源限制值。
所有的参数均可设置为DEFAULT或UNLIMITED,除此之外的值依据不同参数存在不同规则。
resource_parameters策略参数值
见下表:
策略参数 | 参数值规则 |
---|---|
SESSIONS_PER_USER | 取值需为整数,取值范围[1,2147483646]。 |
IDLE_TIME | 取值需为整数,取值范围[1,2147483646]。 |
DEFAULT
指定为DEFAULT表示直接采用预置的默认profile中相关配置。
UNLIMITED
指定为UNLIMITED表示不对该参数对应资源进行限制。
# tcp_ip_parameters
定义登录IP相关的资源限制。
# tcp_ip_parameters_name
目前包括INVITED_NODES、EXCLUDED_NODES。
INVITED_NODES
登录IP白名单,配置IP列表后将只允许白名单中的IP登录。非重复的IP个数不得超过64个。
EXCLUDED_NODES
登录IP黑名单,配置IP列表后将不允许黑名单中的IP登录。非重复的IP个数不得超过64个。
# tcp_ip_parameters_value
指定IP策略资源参数所对应的资源限制值。
所有的参数均可设置为DEFAULT、UNLIMITED或iplist。
iplist
IP列表字符串,格式为'IP/mask, IP'。
- IP:实际IP地址,例如192.168.4.11。
- MASK:表示从左向右匹配二进制IP的比特数,取值范围为[0,32]。如果不加MASK,则默认表示全匹配。
DEFAULT
指定为DEFAULT表示不受限制,效果等同于UNLIMITED。
UNLIMITED
指定为UNLIMITED表示不对该参数对应资源进行限制。
Note:
- 上述参数值支持数据类型隐式转换和表达式运算,结果满足规则即可。
- 上述所有参数的值为空字符串,或表达式结果为NULL时,视为0值处理。
- INVITED_NODES、EXCLUDED_NODES只能设置为字符串,说明参见iplist。
示例(单机、共享集群部署)
CREATE PROFILE prof_1 LIMIT FAILED_LOGIN_ATTEMPTS 1 PASSWORD_LIFE_TIME 180;
CREATE PROFILE prof_2 LIMIT FAILED_LOGIN_ATTEMPTS DEFAULT PASSWORD_LIFE_TIME 30*2.5;
CREATE PROFILE prof_3 LIMIT FAILED_LOGIN_ATTEMPTS DEFAULT PASSWORD_LIFE_TIME UNLIMITED;
CREATE PROFILE prof_4 LIMIT
FAILED_LOGIN_ATTEMPTS 1
PASSWORD_LIFE_TIME 180
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_LOCK_TIME 1
PASSWORD_GRACE_TIME 0;