用户、角色、权限相关的语句都对应前端页面的选项, 语句中的值XX=XX
顺序可以随意调换,不强制顺序与例句一致。
创建用户
支持的语法:
UDAL CREATE USER 'user_name' IDENTIFIED BY '****' SET
manageCommand = 'true' | 'false'
AND profile = 'profile_name'
AND whitelist = 'true' | 'false'
AND freeFrontConnection = 'true' | 'false'
AND groups = '{ "setAll": "true" | "false", "groupList": "..." }'
AND canhint = 'true' | 'false'
AND role = 'role_name [, role_name2, ...]';
其中,用户名和密码必填,其余参数为非必填。
语法说明:
user_name:需要创建的用户名称。
IDENTIFIED BY:指定用户密码。
manageCommand:是否有管理命令权限(true/false)。
profile:密码策略,设定用户的安全策略或权限等级(如 复杂度高-长期有效)。可以填写中文或者英文,所填的值大小写敏感:
中文 英文 复杂度低-临时有效 Low complexity - temporary effective 复杂度中-短期有效 Medium complexity - short term effective 复杂度高-长期有效 High complexity - long term effective 复杂度高-永久有效 High complexity - permanent 中文 英文 whitelist:是否有过载保护白名单权限(true/false)。
freeFrontConnection:是否前端连接不受限(true/false)。
canhint:是否具有Hint权限(true/false)。
role:赋予用户的角色,可以是多个角色,如果是同时赋予多个角色,需要用逗号分开并用单引号或双引号包括起来。
groups:指定用户所拥有权限的分组信息以及对应分组的连接数限制信息,JSON格式,包含setAll和groupList。 setAll表示是否拥有所有分组权限,groupList表示拥有哪些分组权限以及对应的分组的连接数限制。当设置groups参数时必须包含这两个值,否则报错。
其中,groups指定用户所拥有的分组权限时,根据是否前端连接不受限有以下组合:
不设置分组权限,则不需要设置groups参数。
当前端连接不受限,即
freeFrontConnection=true
时,并拥有所有的分组权限,则设置groups='{ "setAll": "true", "groupList": "" }'
。当前端连接不受限,即
freeFrontConnection=true
时,并拥有部分分组权限,则设置groups='{ "setAll": "false", "groupList": "group1,group2" }'
。当前端连接受限,即
freeFrontConnection=false
时,需要设置分组权限时,如果对某分组不设置连接数限制则直接填写分组名称,如果对某分组设置连接数限制则填写 分组名:连接数。 例如,groups = '{ "setAll": "false", "groupList":"r1,r2:100,r3" }'
意为拥有部分分组的权限,具体为r1,r2,r3这三个分组的权限,其中r1,r3的前端连接数不受限制, r2的前端连接数限制为100。
修改用户
支持的语法:
UDAL ALTER USER 'user_name' IDENTIFIED BY '****' SET
manageCommand = 'true' | 'false'
AND profile = 'profile_name'
AND whitelist = 'true' | 'false'
AND freeFrontConnection = 'true' | 'false'
AND groups = '{ "setAll": "true" | "false", "groupList": "..." }'
AND canhint = 'true' | 'false'
AND role = 'role_name [, role_name2, ...]';
其中,用户名必填,其余参数选填,填写的参数值将直接覆盖原来的设置,其余未填写参数将不做覆盖保持原样。
语法说明:
user_name:需要修改的用户名称。
IDENTIFIED BY:需要修改的用户密码。
manageCommand:是否有管理命令权限(true/false)。
profile:密码策略,设定用户的安全策略或权限等级(如 复杂度高-长期有效)。可以填写中文或者英文,所填的值大小写敏感:
中文 英文 复杂度低-临时有效 Low complexity - temporary effective 复杂度中-短期有效 Medium complexity - short term effective 复杂度高-长期有效 High complexity - long term effective 复杂度高-永久有效 High complexity - permanent 中文 英文 whitelist:是否有过载保护白名单权限(true/false)。
freeFrontConnection:是否前端连接不受限(true/false)。
canhint:是否具有Hint权限(true/false)。
role:赋予用户的角色,可以是多个角色,如果是同时赋予多个角色,需要用逗号分开并用单引号或双引号包括起来。
groups:指定用户所拥有权限的分组信息以及对应分组的连接数限制信息,JSON格式,包含setAll和groupList。 setAll表示是否拥有所有分组权限,groupList表示拥有哪些分组权限以及对应的分组的连接数限制。当设置groups参数时必须包含这两个值,否则报错。
其中,groups指定用户所拥有的分组权限时,根据是否前端连接不受限有以下组合:
不设置分组权限,则不需要设置groups参数。
当该用户的前端连接不受限,即设置
freeFrontConnection=true
,或者原本就设置了freeFrontConnection=true
,本次alter没有修改这个参数时,并拥有所有的分组权限,则设置groups='{ "setAll": "true", "groupList": "" }'
。当前端连接不受限,即设置
freeFrontConnection=true
,或者原本就设置了freeFrontConnection=true
,本次alter没有修改这个参数时,并拥有部分分组权限,则设置groups='{ "setAll": "false", "groupList": "group1,group2" }'
。当前端连接受限,即设置
freeFrontConnection=false
,或者原本就设置了freeFrontConnection=false
,本次alter没有修改这个参数时,需要设置分组权限时,如果对某分组不设置连接数限制则直接填写分组名称,如果对某分组设置连接数限制则填写分组名:连接数
。 例如,groups = '{ "setAll": "false", "groupList":"r1,r2:100,r3" }'
意为拥有部分分组的权限,具体为r1,r2,r3这三个分组的权限,其中r1,r3的前端连接数不受限制, r2的前端连接数限制为100。
删除用户
支持的语法:
UDAL DROP USER 'user_name'
语法说明:
user_name: 需要删除的用户名称。
创建角色
支持的语法:
UDAL CREATE ROLE 'role_name' comments 'role_comment';
语法说明:
role_name:需要创建的角色名称,必填。
role_comment:角色的描述,非必填。
修改角色
注意
该语法仅支持修改角色的描述,不支持修改角色名称。
支持的语法:
UDAL ALTER ROLE 'role_name' set comments 'role_comment';
语法说明:
role_name:需要修改描述的角色名,必填。
role_comment:需要修改的描述,必填。
删除角色
支持的语法:
UDAL DROP ROLE 'role_name';
语法说明:
role_name:需要删除的角色名,必填。