在现代数据库管理中,高效和直观的权限管理对于用户的数据安全是至关重要的。过去 DolphinDB 用户需要依赖系统脚本来管理用户和权限,这对于缺乏技术背景的管理员来说既复杂又容易出错。
为了提升用户体验和操作效率,DolphinDB 目前在 Web 上开发了可视化权限操作管理模块,用户可以轻松地设定对数据库、内存表、流表、函数视图的访问限制,得以高效地确保数据库系统安全。
1. 功能简介
在 DolphinDB Web 权限管理模块下,一切关于权限的管理任务变得既直观又富有条理。本模块精心打造了两大控制模块:用户管理和组管理,它们共同构成了 Web 权限管理的核心。
用户管理:用户管理的设计旨在简化账户操作流程。从创建新用户到配置权限范围,每一个功能都经过了细致的优化,确保管理员可以毫不费力地管理整个系统的用户。主要功能包括:
- 新建用户:以表单的方式快速添加新的数据库用户。
- 删除用户:删除单个用户或者批量删除多个用户。
- 设置用户组:将用户归入特定的用户组内,便捷权限分配。
- 重置用户密码:在用户忘记密码或需要密码更新时,提供一种安全的重置方式。
- 查看用户权限:通过可视化图表查看每个用户的权限细节。
- 设置用户权限:自由调整每个用户的权限设置,保障不同权限的精细分配。
组管理:组管理的架构则专注于用户组的整体性管理,它确保了权限设置的集体性和一致性。主要功能包括:
- 新建组:创建新的分组,以适应不同团队或项目的权限分布需求。
- 删除组:删除不再需要的群组。
- 设置组内用户:能够灵活地安排组内成员,随时调整团队配置。
- 查看组权限:通过一目了然的权限布局视图,管理员无需繁琐查询即可审视各个用户组的权限设置。。
- 设置组权限:给予特定的用户组一系列权限,实现统一而精确的权限控制。
DolphinDB Web 权限管理模块,凭借其高度组织化的功能设计,不仅提升了管理员的工作效率,也加强了对敏感数据的防护。
2. 用户管理
用户管理是 Web 权限管理模块的重要组成部分,提供了一系列功能,以确保对数据库用户的有效和安全管理。通过这些功能,管理员可以轻松掌控用户访问权限、执行日常管理任务、并维护数据库系统的完整性和安全。以下是用户管理功能的具体介绍:
2.1 新建用户
1. 切换到权限管理模块下的用户管理模块。
2. 点击界面上的新建用户,弹出表单如下图:
3. 依次输入用户名、密码、确认密码,选择是否分配为管理员、选择初始组,确认无误后点击确定。
4. 确定后,会调用函数 createUser 进行用户创建。创建成功后,在界面上提示"用户创建成功"。
2.2 删除用户
2.2.1 删除单个用户
1. 点击用户列表操作栏内删除按钮,弹出确认框。
2. 点击确定后,会调用函数 deleteUser 进行用户删除。删除成功后,在界面上提示"用户删除成功"。
2.2.2 批量删除用户
1. 选中想要删除的用户,点击表头上的批量删除按钮,弹出确认框。
2. 点击确定后,会调用函数 deleteUser 进行用户批量删除。删除成功后,在界面上提示"用户删除成功"。
2.3 设置密码
1. 点击用户列表操作栏内设置密码按钮,弹出设置密码表单。
2. 输入密码以及确认密码后,点击确定。会调用函数 resetPwd 完成用户密码重置,重置成功后,在界面上提示"密码重置成功"。
2.4 设置用户组
1. 点击用户操作栏内设置用户组按钮,弹出用户组管理对话框。
2. 左侧为当前用户未所属组,右侧为当前用户所属组。选中想要移入/移出的组,通过中间的箭头进行交换后,点击预览修改对用户组的改动进行预览。
3. 点击预览修改后进入到修改预览界面,依次确认该用户原有组,即将移入组和即将移出组,确认无误后点击确定。会调用函数 addgroupmember 和 deletegroupmember 进行用户组修改。修改成功后,在界面上提示"用户所属组修改成功"。
2.5 查看权限
1. 点击用户列表操作栏内查看权限按钮,切换到查看权限页面(这里展示的为指定用户及其所属组的权限组合后的最终生效权限),即以 finalAccess = true
的参数调用函数 getUserAccess 。
2. 此处可以查看该用户的分布式数据库表权限、共享内存表权限、流数据表权限、函数视图权限以及全局权限(SCRIPT_EXEC、TEST_EXEC、VIEW_OWNER 等等)。表格中绿色代表该用户对某一数据库实体的权限状态为 Allow,红色代表该用户的权限状态为 Deny,灰色代表该用户的权限状态为 None。对此界面进行详细介绍:
-
- 导航栏的上半部分的下拉框可以对用户进行切换;
- 导航栏上部分的选项卡可以对权限类别进行切换;
- 刷新按钮对当前查看的权限表格数据进行刷新;
- 返回按钮可以返回到用户列表页面;
- 设置权限按钮跳转到设置权限页面(见 3.6 节);
- 搜索框用来查找想要查看的权限对象(数据库/共享内存表/流数据表/函数视图/全局权限);
- 如果当前选项卡为分布式数据库,可以点击表格内每一行行首的加号按钮,会展开该分布式数据库下的数据表权限。
2.6 设置权限
点击用户列表操作栏内设置权限按钮,切换到设置权限页面。
图 2-11 详细展示了设置权限页面的功能:
- 导航栏的上半部分的下拉框可以对用户进行切换;
- 导航栏上部分的选项卡可以对权限类别进行切换;
- 刷新按钮对当前查看的列表数据进行刷新;
- 返回按钮可以返回到用户列表页面;
- 新增权限按钮弹出新增权限表单(见 3.6.1 节);
- 查看权限按钮跳转到查看权限页面(见 3.5 节);
- 批量撤销按钮可批量撤销用户被赋予的权限(见 3.6.2 节);
- 搜索框用来查找想要查看的权限对象(数据库/共享内存表/流数据表/函数视图/全局权限)。
2.6.1 新增权限
1. 点击新增权限按钮,弹出对话框进行权限新增操作。
2. 选择权限类别:授予(grant)/拒绝(deny)权限。
3. 选择要赋予的权限类型,根据当前选项卡的不同,会在下拉框提供不同的权限类型,具体而言:
-
- 分布式数据库:包括库级权限类型 DB_MANAGE、DBOBJ_CREATE、DBOBJ_DELETE、DB_OWNER、DB_WRITE、DB_INSERT、DB_UPDATE、DB_DELETE、DB_READ 和表级权限类型 TABLE_WRITE、TABLE_READ、TABLE_INSERT、TABLE_UPDATE、TABLE_DELETE;
- 共享内存表:TABLE_WRITE、TABLE_READ;
- 流数据表:TABLE_WRITE、TABLE_READ;
- 函数视图:VIEW_EXEC;
- 全局权限:SCRIPT_EXEC、TEST_EXEC、VIEW_OWNER、QUERY_RESULT_MEM_LIMIT、TASK_GROUP_MEM_LIMIT。
4. 选择或输入权限的应用范围(可多选),根据当前选项卡和用户在第 3 步选择的权限类型,会提供不同的权限应用范围,具体而言:
-
- 分布式数据库:
- 如果选择了库级权限类型,则只会展示出该集群下的所有分布式数据库;
- 如果选择了表级权限类型,则会展示出该集群下的所有分布式数据表;
- 如果选择了 DB_OWNER,则需要用户手动输入应用范围("*" 或以 "*" 结尾的数据库名,前者表示对所有数据库生效,后者表示对指定前缀命名的所有数据库生效)。
- 共享内存表:展示出所有的共享内存表;
- 流数据表:展示出所有的流数据表;
- 函数视图:展示出所有的函数视图;
- 全局权限:
- 如果选择了 SCRIPT_EXEC、TEST_EXEC、VIEW_OWNER 三种权限:应用范围为全局,此处不用选择或输入;
- 如果选择了 QUERY_RESULT_MEM_LIMIT 或 TASK_GROUP_MEM_LIMIT:则需要用户手动输入限制内存大小,单位为 GB。
- 分布式数据库:
5. 点击预添加按钮,对即将赋予的权限进行预览和确认。
6. 预览即将赋予的权限,此时根据需要对预添加的权限进行移除。
7. 确认无误,点击确认添加按钮,调用函数 grant 和 deny 对用户正式赋予权限,赋予成功后,在界面上提示"权限赋予成功"。
2.6.2 撤销权限
点击撤销/批量撤销后,可对用户已赋予/已禁止的权限进行撤销,会调用函数 revoke 撤销权限,撤销成功后,在界面上提示"撤销成功"。
3. 组管理
在 DolphinDB 的权限管理系统中,我们引入了"组"这一概念,以便于更方便地配置和管理拥有相同权限的用户。这样当权限管理需求发生变化时,只需对组的权限进行一次修改,便可立即影响到组内的所有用户。这种设计大大简化了权限配置和管理的过程,提升了效率。以下对组管理的功能做出介绍(查看权限和设置权限功能与上文一致,不再重复):
3.1 新建组
1. 点击新建组按钮,弹出新建组弹窗。
2. 进行新建组表单的填写:
- 输入组名;
- 在非组成员中选择要添加的初始成员;
- 点击中间的箭头,确认选择初始成员;
- 点击确定后,会调用函数 createGroup 进行组创建,创建成功后,在界面上提示"组创建成功"。
3.2 删除组
对已存在的组可以进行删除操作,可以删除单个组或者批量删除多个组。
3.2.1 删除单个组
1. 点击组列表操作栏内删除按钮,弹出确认框。
2. 点击确定后,会调用函数 deleteGroup 进行组删除。删除成功后,在界面上提示"组删除成功"。
3.2.2 批量删除组
1. 选中想要删除的组,点击表头上的批量删除按钮,弹出确认框。
2. 确认想要删除的组后,点击确定,会调用函数 deleteGroup 进行组删除。删除成功后,在界面上提示"组删除成功"。
3.3 管理成员
1. 点击组操作栏内管理成员按钮,弹出成员管理对话框。
2. 左侧为当前组的非组成员,右侧为当前组的组成员。选中想要移入/移出的用户,通过中间的箭头进行交换后,点击预览修改对组内用户的改动进行预览。
3. 依次确认该组原组成员,即将移入用户和即将移出用户,确认无误后,在预览弹窗点击确定,会调用脚本 addgroupmember 和 deletegroupmember 完成组内用户的修改。修改成功后,在界面上提示"组成员修改成功"。
4. 总结
DolphinDB Web 权限管理模块通过简洁和直观的设计,大幅提升了用户管理和权限配置的效率。管理员可以轻松地创建和删除用户、重置用户密码、分配和调整用户权限,以及管理用户组及其成员。每个操作都经过优化,确保权限管理既便捷又精确,保障数据库系统的安全性。未来,DolphinDB Web 权限管理模块将继续优化用户体验,为用户提供更加安全、高效、智能的数据库管理工具。