管理用户和角色的DDL语句 修改用户 支持的语法: plaintext [UDAL] ALTER USER [IF EXISTS] 'username' IDENTIFIED BY '' SET manageCommand 'true' 'false' AND profile 'profilename' AND whitelist 'true' 'false' AND freeFrontConnection 'true' 'false' AND groups '{ "setAll": "true" "false", "groupList": "..." }' AND canhint 'true' 'false' AND role 'rolename [, rolename2, ...]'; 其中,用户名必填,其余参数选填,填写的参数值将直接覆盖原来的设置,其余未填写参数将不做覆盖保持原样。 语法说明: username:需要修改的用户名称。 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参数。 当该用户的前端连接不受限,即设置freeFrontConnectiontrue,或者原本就设置了freeFrontConnectiontrue,本次alter没有修改这个参数时,并拥有所有的分组权限,则设置groups'{ "setAll": "true", "groupList": "" }'。 当前端连接不受限,即设置freeFrontConnectiontrue,或者原本就设置了freeFrontConnectiontrue,本次alter没有修改这个参数时,并拥有部分分组权限,则设置groups'{ "setAll": "false", "groupList": "group1,group2" }'。 当前端连接受限,即设置freeFrontConnectionfalse,或者原本就设置了freeFrontConnectionfalse,本次alter没有修改这个参数时,需要设置分组权限时,如果对某分组不设置连接数限制则直接填写分组名称,如果对某分组设置连接数限制则填写分组名:连接数。 例如, groups '{ "setAll": "false", "groupList":"r1,r2:100,r3" }' 意为拥有部分分组的权限,具体为r1,r2,r3这三个分组的权限,其中r1,r3的前端连接数不受限制, r2的前端连接数限制为100。