#CREATE PROFILE

# 通用描述

CREATE PROFILE用于创建一个profile,profile为系统对用户的一组资源限制的集合。在YashanDB中,profile可用于定义密码使用策略相关、会话资源相关以及连接请求IP相关限制。

执行本语句需注意如下事项:

  • 用户必须拥有CREATE PROFILE权限。
  • profile本身并不包含用户信息,需使用CREATE USERALTER USER语句关联user与profile。

通过DBA_PROFILES视图可查询所有profile及其内容。

YashanDB已预置一个默认的profile(名称为DEFAULT),在使用缺省语法创建新用户时,该用户都将被关联到默认的profile,受其指定的配置限制。

存算一体分布式集群部署中,只支持定义密码策略相关的资源限制

Note:

  • 参数值支持数据类型隐式转换和表达式运算,结果满足规则即可。
  • 所有参数的值为空字符串或表达式结果为NULL时,视为0值处理。

# 语句定义

create profile::=

syntax
CREATE PROFILE profile_name LIMIT password_parameters resource_parameters tcp_ip_parameters

password_parameters::=

syntax
password_parameter_name password_parameter_value

resource_parameters::=

syntax
resource_parameter_name resource_parameter_value

tcp_ip_parameters::=

syntax
tcp_ip_parameter_name tcp_ip_parameter_value

# 1. profile_name

profile名称,不可省略,且需符合YashanDB的对象命名规范

# 2. password_parameters

定义密码使用策略相关的配置,包括密码策略参数和参数值,同时定义多个参数以空格分隔。

当某个密码策略参数未在本语句中指定时,系统按DEFAULT值(见下文DEFAULT描述)将其生成到profile中。

# 2.1. password_parameter_name

密码使用策略相关参数名,同时定义多个参数以空格分隔。

# 2.2. password_parameter_value

指定密码策略参数所对应的参数值值。

所有的参数均可设置为DEFAULT、UNLIMITED或具体参数值。

DEFAULT

指定为DEFAULT表示直接采用预置的默认profile中相关配置。

UNLIMITED

指定为UNLIMITED表示不对该参数进行限制。

password_parameters参数值

参数值支持数学运算,结果满足参数取值规则即可。

相关参数如下表所示:

参数 对应策略 取值范围 默认值
FAILED_LOGIN_ATTEMPTS 最大连续错误登录次数 取值必须为整数
* 未开三权分立:(0,2147483647)
* 开启三权分立:(0,5]
* 未开三权分立:10
* 开启三权分立:5
FAILED_LOGIN_INTERVAL 密码重试间隔,即密码错误时再次尝试需要等待的时间间隔(单位:秒) UNLIMITED或[1,2147483646]区间的整数 UNLIMITED
即不限制等待间隔
PASSWORD_LOCK_TIME 超过错误尝试次数后用户被锁定的天数 (0,24855] 1
PASSWORD_LIFE_TIME 密码生命周期,即需要更新密码的天数 UNLIMITED或(0,24855] * 未开三权分立:UNLIMITED,即不限制天数
* 开启三权分立:7
PASSWORD_GRACE_TIME 密码过期宽限期,即密码过期后还可使用原密码的天数 * 未开三权分立:UNLIMITED或[0,24855]
* 开启三权分立:固定为0
* 未开三权分立:UNLIMITED,即无限宽限
* 开启三权分立:0
PASSWORD_REUSE_TIME 密码不可复用的间隔天数
假设其为X,表示新密码不能设置为最近X天内使用过的密码
UNLIMITED或(0,24855] UNLIMITED,即无限复用
PASSWORD_REUSE_MAX 密码满足可复用的必要变更次数
假设其为N,表示新密码不能设置为最近N次使用过的密码
UNLIMITED或[1,2147483646]区间的整数 UNLIMITED,即无限复用
  • FAILED_LOGIN_ATTEMPTS、FAILED_LOGIN_INTERVAL与PASSWORD_LOCK_TIME配合使用,可达到“密码错误时等待X秒后可重试,连续重试Y次后用户被锁定Z天无法登录”的效果。

  • PASSWORD_REUSE_TIME与PASSWORD_REUSE_MAX配合使用,可达到“新密码不能为最近N天内且最近M次使用过的相同密码”的效果。若其中一个参数设置为具体数值而另一个参数设置为UNLIMITED,则用户永远无法使用重复密码。

示例

CREATE PROFILE prof_pswd1 LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LIFE_TIME 180;

CREATE PROFILE prof_pswd2 LIMIT 
FAILED_LOGIN_ATTEMPTS 15 
FAILED_LOGIN_INTERVAL 10
PASSWORD_LOCK_TIME 1 
PASSWORD_LIFE_TIME 30*2.5 
PASSWORD_GRACE_TIME 0
PASSWORD_REUSE_TIME UNLIMITED 
PASSWORD_REUSE_MAX UNLIMITED;

# 3. resource_parameters

定义会话资源相关的配置,同时定义多个参数以空格分隔。

当某个资源策略参数未在本语句中指定时,系统按DEFAULT值(见下文DEFAULT描述)将其生成到profile中。

# 3.1. resource_parameter_name

目前包括SESSIONS_PER_USER、IDLE_TIME。

SESSIONS_PER_USER

同一用户最多并行会话连接数。

IDLE_TIME

用户最长空闲无操作时间,单位为分钟。用户登录后若连续长时间无操作达到阈值时长,系统将断开该会话,会话被断开后再执行操作将报错。

后台线程每隔10s进行一次检测并断开长时间空闲会话,因此用户最长连续空闲的时间至多可比该用户的对应阈值多10s。

# 3.2. resource_parameter_value

指定会话资源参数所对应的配置值。

所有的参数均可设置为DEFAULT、UNLIMITED或具体参数值。

DEFAULT

指定为DEFAULT表示直接采用预置的默认profile中相关配置。

UNLIMITED

指定为UNLIMITED表示不对该参数对应资源进行限制。

resource_parameters参数值

参数值支持表达式运算,结果满足参数值规则即可。

策略参数 参数说明 参数值规则
SESSIONS_PER_USER 同一用户最多并行会话连接数 [1,2147483646]区间的整数
IDLE_TIME 用户最长空闲无操作时间(单位:分钟) [1,2147483646]区间的整数

示例(单机、共享集群部署)

CREATE PROFILE prof_res LIMIT SESSIONS_PER_USER 10 IDLE_TIME 10;

# 4. tcp_ip_parameters

定义连接请求IP相关的配置,同时定义多个参数以空格分隔。

当某个连接请求IP配置参数未在本语句中指定时,系统按DEFAULT值(见下文DEFAULT描述)将其生成到profile中。

# 4.1. tcp_ip_parameters_name

目前包括登录IP白名单INVITED_NODES、登录IP黑名单EXCLUDED_NODES。

黑名单优先级高于白名单,若黑白名单中存在相同IP按黑名单生效。

INVITED_NODES

登录IP白名单,配置IP列表后将只允许当前profile关联的用户使用白名单中的IP登录。

非重复的IP个数不得超过64个。

EXCLUDED_NODES

登录IP黑名单,配置IP列表后将不允许当前profile关联的用户使用黑名单中的IP登录。

非重复的IP个数不得超过64个。

# 4.2. tcp_ip_parameters_value

指定连接请求IP参数所对应的参数值。

所有的参数均可设置为DEFAULT、UNLIMITED或具体的IP列表。

DEFAULT

指定为DEFAULT表示不受限制,效果等同于UNLIMITED。

UNLIMITED

指定为UNLIMITED表示不对该参数进行限制。

iplist

IP列表字符串,格式为'IP/mask,IP'

  • IP:实际IP地址,例如192.168.4.11。
  • MASK:表示从左向右匹配二进制IP的比特数,取值范围为[0,32]。如果不加MASK,则默认表示全匹配。

示例(单机、共享集群部署)

CREATE PROFILE prof_ip LIMIT EXCLUDED_NODES '192.168.4.11';
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流