当前位置: 首页 > news >正文

DolphinDB Web 端权限管理:可视化操作指南

在现代数据库管理中,高效和直观的权限管理对于用户的数据安全是至关重要的。过去 DolphinDB 用户需要依赖系统脚本来管理用户和权限,这对于缺乏技术背景的管理员来说既复杂又容易出错。

为了提升用户体验和操作效率,DolphinDB 目前在 Web 上开发了可视化权限操作管理模块,用户可以轻松地设定对数据库、内存表、流表、函数视图的访问限制,得以高效地确保数据库系统安全。

1. 功能简介

在 DolphinDB Web 权限管理模块下,一切关于权限的管理任务变得既直观又富有条理。本模块精心打造了两大控制模块:用户管理和组管理,它们共同构成了 Web 权限管理的核心。

用户管理:用户管理的设计旨在简化账户操作流程。从创建新用户到配置权限范围,每一个功能都经过了细致的优化,确保管理员可以毫不费力地管理整个系统的用户。主要功能包括:

  • 新建用户:以表单的方式快速添加新的数据库用户。
  • 删除用户:删除单个用户或者批量删除多个用户。
  • 设置用户组:将用户归入特定的用户组内,便捷权限分配。
  • 重置用户密码:在用户忘记密码或需要密码更新时,提供一种安全的重置方式。
  • 查看用户权限:通过可视化图表查看每个用户的权限细节。
  • 设置用户权限:自由调整每个用户的权限设置,保障不同权限的精细分配。

组管理:组管理的架构则专注于用户组的整体性管理,它确保了权限设置的集体性和一致性。主要功能包括:

  • 新建组:创建新的分组,以适应不同团队或项目的权限分布需求。
  • 删除组:删除不再需要的群组。
  • 设置组内用户:能够灵活地安排组内成员,随时调整团队配置。
  • 查看组权限:通过一目了然的权限布局视图,管理员无需繁琐查询即可审视各个用户组的权限设置。。
  • 设置组权限:给予特定的用户组一系列权限,实现统一而精确的权限控制。

DolphinDB Web 权限管理模块,凭借其高度组织化的功能设计,不仅提升了管理员的工作效率,也加强了对敏感数据的防护。

2. 用户管理

用户管理是 Web 权限管理模块的重要组成部分,提供了一系列功能,以确保对数据库用户的有效和安全管理。通过这些功能,管理员可以轻松掌控用户访问权限、执行日常管理任务、并维护数据库系统的完整性和安全。以下是用户管理功能的具体介绍:

2.1 新建用户

1. 切换到权限管理模块下的用户管理模块。

2. 点击界面上的新建用户,弹出表单如下图:

图 2-1 新建用户表单

3. 依次输入用户名、密码、确认密码,选择是否分配为管理员、选择初始组,确认无误后点击确定。

4. 确定后,会调用函数 createUser 进行用户创建。创建成功后,在界面上提示"用户创建成功"。

2.2 删除用户

2.2.1 删除单个用户

1. 点击用户列表操作栏内删除按钮,弹出确认框。

图 2-2 单个用户删除

2. 点击确定后,会调用函数 deleteUser 进行用户删除。删除成功后,在界面上提示"用户删除成功"。

2.2.2 批量删除用户

1. 选中想要删除的用户,点击表头上的批量删除按钮,弹出确认框。

图 2-3 批量用户删除

2. 点击确定后,会调用函数 deleteUser 进行用户批量删除。删除成功后,在界面上提示"用户删除成功"。

2.3 设置密码

1. 点击用户列表操作栏内设置密码按钮,弹出设置密码表单。

图 2-4 设置用户密码表单

2. 输入密码以及确认密码后,点击确定。会调用函数 resetPwd 完成用户密码重置,重置成功后,在界面上提示"密码重置成功"。

2.4 设置用户组

1. 点击用户操作栏内设置用户组按钮,弹出用户组管理对话框。

图 2-5 设置用户组按钮

2. 左侧为当前用户未所属组,右侧为当前用户所属组。选中想要移入/移出的组,通过中间的箭头进行交换后,点击预览修改对用户组的改动进行预览。

图 2-6 设置用户组界面

3. 点击预览修改后进入到修改预览界面,依次确认该用户原有组,即将移入组和即将移出组,确认无误后点击确定。会调用函数 addgroupmember 和 deletegroupmember 进行用户组修改。修改成功后,在界面上提示"用户所属组修改成功"。

图 2-7 用户组改动预览界面

2.5 查看权限

1. 点击用户列表操作栏内查看权限按钮,切换到查看权限页面(这里展示的为指定用户及其所属组的权限组合后的最终生效权限),即以 finalAccess = true 的参数调用函数 getUserAccess 。

图 2-8 查看权限按钮

2. 此处可以查看该用户的分布式数据库表权限、共享内存表权限、流数据表权限、函数视图权限以及全局权限(SCRIPT_EXEC、TEST_EXEC、VIEW_OWNER 等等)。表格中绿色代表该用户对某一数据库实体的权限状态为 Allow,红色代表该用户的权限状态为 Deny,灰色代表该用户的权限状态为 None。对此界面进行详细介绍:

    • 导航栏的上半部分的下拉框可以对用户进行切换;
    • 导航栏上部分的选项卡可以对权限类别进行切换;
    • 刷新按钮对当前查看的权限表格数据进行刷新;
    • 返回按钮可以返回到用户列表页面;
    • 设置权限按钮跳转到设置权限页面(见 3.6 节);
    • 搜索框用来查找想要查看的权限对象(数据库/共享内存表/流数据表/函数视图/全局权限);
    • 如果当前选项卡为分布式数据库,可以点击表格内每一行行首的加号按钮,会展开该分布式数据库下的数据表权限。

图 2-9 查看权限页面

2.6 设置权限

点击用户列表操作栏内设置权限按钮,切换到设置权限页面。

图 2-10 设置权限按钮

图 2-11 详细展示了设置权限页面的功能:

  • 导航栏的上半部分的下拉框可以对用户进行切换;
  • 导航栏上部分的选项卡可以对权限类别进行切换;
  • 刷新按钮对当前查看的列表数据进行刷新;
  • 返回按钮可以返回到用户列表页面;
  • 新增权限按钮弹出新增权限表单(见 3.6.1 节);
  • 查看权限按钮跳转到查看权限页面(见 3.5 节);
  • 批量撤销按钮可批量撤销用户被赋予的权限(见 3.6.2 节);
  • 搜索框用来查找想要查看的权限对象(数据库/共享内存表/流数据表/函数视图/全局权限)。

图 2-11 设置权限页面

2.6.1 新增权限

1. 点击新增权限按钮,弹出对话框进行权限新增操作。

图 2-12 新增权限按钮

2. 选择权限类别:授予(grant)/拒绝(deny)权限。

图 2-13 选择权限类别

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。

图 2-14 选择权限类型

4. 选择或输入权限的应用范围(可多选),根据当前选项卡和用户在第 3 步选择的权限类型,会提供不同的权限应用范围,具体而言:

    • 分布式数据库
      • 如果选择了库级权限类型,则只会展示出该集群下的所有分布式数据库;
      • 如果选择了表级权限类型,则会展示出该集群下的所有分布式数据表;
      • 如果选择了 DB_OWNER,则需要用户手动输入应用范围("*" 或以 "*" 结尾的数据库名,前者表示对所有数据库生效,后者表示对指定前缀命名的所有数据库生效)。
    • 共享内存表:展示出所有的共享内存表;
    • 流数据表:展示出所有的流数据表;
    • 函数视图:展示出所有的函数视图;
    • 全局权限
      • 如果选择了 SCRIPT_EXEC、TEST_EXEC、VIEW_OWNER 三种权限:应用范围为全局,此处不用选择或输入;
      • 如果选择了 QUERY_RESULT_MEM_LIMIT 或 TASK_GROUP_MEM_LIMIT:则需要用户手动输入限制内存大小,单位为 GB。

图 2-15 选择权限应用范围

5. 点击预添加按钮,对即将赋予的权限进行预览和确认。

图 2-16 预添加按钮

6. 预览即将赋予的权限,此时根据需要对预添加的权限进行移除

图 2-17 权限添加预览界面

7. 确认无误,点击确认添加按钮,调用函数 grant 和 deny 对用户正式赋予权限,赋予成功后,在界面上提示"权限赋予成功"。

2.6.2 撤销权限

图 2-18 撤销/批量撤销权限


点击撤销/批量撤销后,可对用户已赋予/已禁止的权限进行撤销,会调用函数 revoke 撤销权限,撤销成功后,在界面上提示"撤销成功"。

3. 组管理

在 DolphinDB 的权限管理系统中,我们引入了"组"这一概念,以便于更方便地配置和管理拥有相同权限的用户。这样当权限管理需求发生变化时,只需对组的权限进行一次修改,便可立即影响到组内的所有用户。这种设计大大简化了权限配置和管理的过程,提升了效率。以下对组管理的功能做出介绍(查看权限和设置权限功能与上文一致,不再重复):

3.1 新建组

1. 点击新建组按钮,弹出新建组弹窗。

图 3-1 新建组按钮

2. 进行新建组表单的填写:

  • 输入组名
  • 在非组成员中选择要添加的初始成员
  • 点击中间的箭头,确认选择初始成员;
  • 点击确定后,会调用函数 createGroup 进行组创建,创建成功后,在界面上提示"组创建成功"。

图 3-2 新建组表单

3.2 删除组

对已存在的组可以进行删除操作,可以删除单个组或者批量删除多个组

3.2.1 删除单个组

1. 点击组列表操作栏内删除按钮,弹出确认框。

图 3-3 删除单个组

2. 点击确定后,会调用函数 deleteGroup 进行组删除。删除成功后,在界面上提示"组删除成功"。

3.2.2 批量删除组

1. 选中想要删除的组,点击表头上的批量删除按钮,弹出确认框。

图 3-4 组批量删除

2. 确认想要删除的组后,点击确定,会调用函数 deleteGroup 进行组删除。删除成功后,在界面上提示"组删除成功"。

3.3 管理成员

1. 点击组操作栏内管理成员按钮,弹出成员管理对话框。

图 3-5 组成员管理按钮

2. 左侧为当前组的非组成员,右侧为当前组的组成员。选中想要移入/移出的用户,通过中间的箭头进行交换后,点击预览修改对组内用户的改动进行预览。

图 3-6 组成员管理表单

3. 依次确认该组原组成员,即将移入用户和即将移出用户,确认无误后,在预览弹窗点击确定,会调用脚本 addgroupmember 和 deletegroupmember 完成组内用户的修改。修改成功后,在界面上提示"组成员修改成功"。

图 3-7 组内成员修改预览

4. 总结

DolphinDB Web 权限管理模块通过简洁和直观的设计,大幅提升了用户管理和权限配置的效率。管理员可以轻松地创建和删除用户、重置用户密码、分配和调整用户权限,以及管理用户组及其成员。每个操作都经过优化,确保权限管理既便捷又精确,保障数据库系统的安全性。未来,DolphinDB Web 权限管理模块将继续优化用户体验,为用户提供更加安全、高效、智能的数据库管理工具。

相关文章:

DolphinDB Web 端权限管理:可视化操作指南

在现代数据库管理中,高效和直观的权限管理对于用户的数据安全是至关重要的。过去 DolphinDB 用户需要依赖系统脚本来管理用户和权限,这对于缺乏技术背景的管理员来说既复杂又容易出错。 为了提升用户体验和操作效率,DolphinDB 目前在 Web 上…...

学习Vue2收藏这一篇就够了(如何创建Vue实例)

什么是Vue? Vue是什么:是一个用于构建用户界面的渐进式框架 什么是构建用户界面:基于数据动态渲染页面 什么是渐进式:循序渐进的学习 什么是框架:一整套完整的项目解决方案 创建Vue实例 核心步骤(4步…...

Mysql数据库第四次作业

mysql> create table student(sno int primary key auto_increment,sname varchar(30) not null unique,Ssex varchar(2) check (Ssex男 or Ssex女) not null,Sage int not null,Sdept varchar(10) default计算机 not null); mysql> create table Course(Con int primar…...

使用Docker搭建MySql的主从同步+ShardingSphere搭建Mysql的读写分离

参考课程 尚硅谷ShardingSphere5实战教程(快速入门掌握核心)_哔哩哔哩_bilibili 主服务器 创建容器 docker run -d \ -p 3306:3306 \ -v /kira/mysql/master/conf:/etc/mysql/conf.d \ -v /kira/mysql/master/data:/var/lib/mysql \ -e MYSQL_ROOT…...

数据结构:数据类型与抽象数据类型

数据类型与抽象数据类型 数据类型基本数据类型构造数据类型指针类型枚举类型 抽象数据类型(ADT)抽象数据类型的组成部分常见的抽象数据类型示例 数据类型与抽象数据类型的区别实现抽象数据类型的具体方式用数组实现栈用链表实现栈 总结 数据类型 数据类…...

西方逻辑史简介

西方逻辑史研究,对形式逻辑实现现代化,对加强西方哲学史研究,对开展科学方法论的研究都有重要意义。西方逻辑史一般被划分成古代、中世纪、现代三个历史时期。本文拟对这三个时期中的七个重要逻辑学家和逻辑学派:亚里士多德、斯多…...

【论文10】复现代码tips

一、准备工作 1.创建一个虚拟环境 conda create --name drgcnn38 python=3.8.18 2.激活虚拟环境 conda activate drgcnn38 注意事项 在Pycharm中终端(terminal)显示PS而不是虚拟环境base 问题如下所示 解决方法:shell路径改成cmd.exe 重启终端显示虚拟环境 3.安装torch …...

分布式缓存获取以及设置

1. 通用代码 public SysUser getCache(String sysUserId) {String cacheKey "litgery:warehouse:" sysUserId;// 尝试从缓存中获取数据CacheData cacheData redisUtils.get(cacheKey);if (null ! cacheData) {if (Boolean.TRUE.equals(cacheData.getExist())) {re…...

SMO算法,platt论文的原始算法及优化算法

platt论文:[PDF] Sequential Minimal Optimization : A Fast Algorithm for Training Support Vector Machines | Semantic Scholar 算法优化:[PDF] Improvements to Platts SMO Algorithm for SVM Classifier Design | Semantic Scholar 包含个人plat…...

2.3 openCv -- 对矩阵执行掩码操作

在矩阵上进行掩模操作相当简单。其基本思想是根据一个掩模矩阵(也称为核)来重新计算图像中每个像素的值。这个掩模矩阵包含的值决定了邻近像素(以及当前像素本身)对新的像素值产生多少影响。从数学角度来看,我们使用指定的值来做一个加权平均。 具体而言,掩模操作通常涉…...

【Django】 js实现动态赋值、显示show隐藏hide效果

文章目录 需要达到的前端效果预览&#xff1a;实现步骤复制bootstrp代码&#xff08;buttons&#xff09;复制bootstrp代码&#xff08;Alert警告框&#xff09;写js测试效果 需要达到的前端效果预览&#xff1a; {% load static %} <!DOCTYPE html> <html lang"…...

qt--做一个拷贝文件器

一、项目要求 使用线程完善文件拷贝器的操作 主窗口不能假死主窗口进度条必须能动改写文件大小的单位&#xff08;自适应&#xff09; 1TB1024GB 1GB1024MB 1MB1024KB 1KB1024字节 二、所需技术 1.QFileDialog 文件对话框 QFileDialog也继承了QDialog类&#xff0c;直接使用静态…...

Eclipse 搭建 C/C++ 开发环境以及eclipse的使用

一、下载、安装 MinGW 1、下载: 下载地址&#xff1a;MinGW - Minimalist GNU for Windows - Browse Files at SourceForge.net 点击“Download Latest Version”即可 下载完成后&#xff0c;得到一个名为 mingw-get-setup.exe 的安装文件。双击运行&#xff0c;安装即可。 …...

【初阶数据结构】复杂度算法题篇

旋转数组 力扣原题 方案一 循环K次将数组所有元素向后移动⼀位&#xff08;代码不通过) 时间复杂度O(n2) 空间复杂度O(1) void rotate(int* nums, int numsSize, int k) {while (k--) {int end nums[numsSize - 1];for (int i numsSize - 1; i > 0; i--) {nums[i] num…...

20240725项目的maven环境报红-重新配置maven

1.在编辑器里面打开项目&#xff0c;导入源码 &#xff08;1&#xff09;找到项目的地址C:\Users\zzz\IdeaProjects\datasys&#xff0c;然后右击用idea编辑器打开。 &#xff08;2&#xff09;idea中上菜单栏打开open&#xff0c;然后输入file&#xff0c;选择源代码文件 2.…...

若依 ruoyi poi Excel合并行的导入

本文仅针对文字相关的合并做了处理 &#xff0c;图片合并及保存需要另做处理&#xff01;&#xff01; 目标&#xff1a;Excel合并行内容的导入 结果&#xff1a; 1. ExcelUtil.java 类&#xff0c;新增方法&#xff1a;判断是否是合并行 /*** 新增 合并行相关代码&#xff1a;…...

优化算法:1.遗传算法(GA)及Python实现

一、定义 遗传算法就像是在模拟“优胜劣汰”的进化过程&#xff0c;通过选择最优秀的个体&#xff0c;交配产生下一代&#xff0c;并引入一定的变异&#xff0c;逐步优化解决问题。 二、具体步骤 初始化种群(Initialization)&#xff1a; 假设你要找到一个迷宫的最佳出口路径。…...

企业化运维(8)Docker容器技术

###1.Docker介绍### 什么是Docker Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中&#xff0c;然后发布到任何流行的 Linux或Windows 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间…...

Unity C#底层原理(二)

委托 方法的容器&#xff1a;委托可以存储一个或多个方法的引用。可以使用委托对象来调用这些方法。函数/方法的变量类型&#xff1a;委托类型可以像变量一样声明和使用&#xff0c;存储方法的引用。存储、传递方法&#xff1a;委托可以作为参数传递给方法&#xff0c;也可以作…...

计算机网络-配置路由器ACL(访问控制列表)

配置访问控制列表ACL 拓扑结构 拓扑结构如下&#xff1a; 要配置一个ACL&#xff0c;禁止PC0访问PC3&#xff0c;禁止PC4访问PC0&#xff0c;其它正常。 配置Router0 配置接口IP地址&#xff1a; interface fastethernet 0/0 ip address 192.168.1.1 255.255.255.0 no shu…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

DAY 26 函数专题1

函数定义与参数知识点回顾&#xff1a;1. 函数的定义2. 变量作用域&#xff1a;局部变量和全局变量3. 函数的参数类型&#xff1a;位置参数、默认参数、不定参数4. 传递参数的手段&#xff1a;关键词参数5 题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一…...

TCP/IP 网络编程 | 服务端 客户端的封装

设计模式 文章目录 设计模式一、socket.h 接口&#xff08;interface&#xff09;二、socket.cpp 实现&#xff08;implementation&#xff09;三、server.cpp 使用封装&#xff08;main 函数&#xff09;四、client.cpp 使用封装&#xff08;main 函数&#xff09;五、退出方法…...

虚幻基础:角色旋转

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 移动组件使用控制器所需旋转&#xff1a;组件 使用 控制器旋转将旋转朝向运动&#xff1a;组件 使用 移动方向旋转 控制器旋转和移动旋转 缺点移动旋转&#xff1a;必须移动才能旋转&#xff0c;不移动不旋转控制器…...

PostgreSQL 与 SQL 基础:为 Fast API 打下数据基础

在构建任何动态、数据驱动的Web API时&#xff0c;一个稳定高效的数据存储方案是不可或缺的。对于使用Python FastAPI的开发者来说&#xff0c;深入理解关系型数据库的工作原理、掌握SQL这门与数据库“对话”的语言&#xff0c;以及学会如何在Python中操作数据库&#xff0c;是…...