DolphinDB的权限管理和安全

2022-03-28 00:00:00 创建 用户 节点 权限 数据表

DolphinDB database 提供了强大、灵活、安全的权限控制系统。控制节点(controller)作为权限管理中心,使用RSA加密方式对用户关键信息进行加密。

主要功能:

  • 提供用户和组角色,方便权限控制
  • 提供8种权限控制类别,适应各种场景
  • 丰富的权限控制函数
  • 函数视图兼顾保护数据隐私与提供分析结果
  • 对任务调度和流数据任务动态鉴权,保证系统安全
  • 使用RSA对用户关键信息加密
  • 支持SSO,简化登录,方便系统扩展


1. 权限概述


1.1 用户和组

用户和组是承载权限的实体。一个用户可以属于多个组,一个组也可以包括多个用户。

引入组的概念,可以方便的对具有相同权限的用户进行权限配置和管理,用户终的实际权限是用户本身的权限,加上所属组的权限的结果。


1.2 系统管理员

DolphinDB集群次启动时,会自动创建用户名为"admin",密码为"123456"的系统管理员。此管理员拥有所有的权限,例如创建或删除数据库,可读写所有表,在数据库中创建或删除数据表,可使用所有的函数视图,可执行或测试脚本。此管理员可以创建或删除其他管理员。其他管理员刚被创建后,可创建或删除其他管理员,用户,或组,但除此之外没有任何权限。管理员可自我授权,亦可互相授权。请注意管理员"admin"无法被删除。

管理员可使用函数或命令createUser, deleteUser, createGroup, ddeleteGroup, addGroupMember, dlelteGroupMember, getUserAccess, getUserList, getGroupList, resetPwd 对用户和组进行方便的操作。


1.3 权限类别

DolphinDB提供以下8种权限类别:

  1. TABLE_READ: 从指定数据表中读取数据
  2. TABLE_WRITE: 将数据写入指定数据表
  3. DBOBJ_CREATE: 创建指定数据库中的对象(数据表)
  4. DBOBJ_DELETE: 删除指定数据库中的对象(数据表)
  5. VIEW_EXEC: 运行函数视图
  6. DB_MANAGE: 创建和删除数据库
  7. SCRIPT_EXEC: 运行脚本文件
  8. TEST_EXEC: 执行单元测试

其中前面5种需要提供操作对象,后面3种不需要提供操作对象。

请注意,权限配置中涉及到的数据库及数据表均为在分布式文件系统(DFS)中建立的。


1.4 权限设置

只有管理员才可设置权限,且只能在控制节点上执行权限类操作。刚创建的用户或组没有被赋予或被禁止任何权限。管理员可使用grant/deny/revoke 命令来设置用户或者组的权限。在1.3种的8种权限,可作为这三个命令的accessType参数值。

以下通过两个例子,说明权限设置的操作。

例子1

管理员登录:

login(`admin, `123456)

相关文章