管理用户和角色的DDL语句 DRDS支持直接连接DBProxy执行DDL语句,本文为您介绍dbproxy创建、修改、删除用户,以及创建、修改、删除角色的DDL语句。 注意 仅V5.1.20.0.13及以后版本的实例,支持使用本文介绍的DDL语句。 用户、角色、权限相关的语句都对应前端页面的选项, 语句中的值XXXX顺序可以随意调换,不强制顺序与例句一致。 创建用户 支持的语法: plaintext [UDAL] CREATE USER [IF NOT 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时,并拥有所有的分组权限,则设置groups'{ "setAll": "true", "groupList": "" }'。 当前端连接不受限,即freeFrontConnectiontrue时,并拥有部分分组权限,则设置groups'{ "setAll": "false", "groupList": "group1,group2" }'。 当前端连接受限,即freeFrontConnectionfalse时,需要设置分组权限时,如果对某分组不设置连接数限制则直接填写分组名称,如果对某分组设置连接数限制则填写 分组名:连接数。 例如,groups '{ "setAll": "false", "groupList":"r1,r2:100,r3" }' 意为拥有部分分组的权限,具体为r1,r2,r3这三个分组的权限,其中r1,r3的前端连接数不受限制, r2的前端连接数限制为100。