首页 > 其他分享 >Apache IoTDB开发系统之Administration Management

Apache IoTDB开发系统之Administration Management

时间:2023-09-19 10:00:57浏览次数:44  
标签:Management 角色 Administration 用户 write IoTDB user path 权限

IoTDB为用户提供账号权限管理操作,保障数据安全。

基本概念

用户

用户是数据库的合法用户。用户对应于唯一的用户名,并具有密码作为身份验证方式。在使用数据库之前,一个人必须首先提供合法的用户名和密码才能使自己成为用户。

特权

数据库提供了多种操作,并非所有用户都可以执行所有操作。如果用户可以执行操作,则称该用户具有执行该操作的权限。权限分为数据管理权限(如添加、删除和修改数据)和权限管理权限(如创建和删除用户和角色、授予和撤销权限等)。数据管理权限通常需要一个路径来限制其有效范围,该路径是根植于路径相应节点的子树。

角色

角色是一组特权,具有唯一的角色名称作为标识符。一个用户通常对应于一个真实身份(例如流量调度员),而一个真实身份可能对应于多个用户。这些具有相同真实身份的用户往往具有相同的权限。角色是可以统一管理此类特权的抽象。

默认用户

初始安装后,IoTDB 中有一个默认用户:root,默认密码为 root。此用户是管理员用户,无法删除并具有所有权限。既不能向 root 用户授予新权限,也不能删除 root 用户拥有的权限。

权限管理操作示例

根据IoTDB的样本数据可能属于不同的发电组,如ln、sgcc等。不同的发电组不希望其他人获取自己的数据库数据,因此我们需要在组层隔离数据权限。

创建用户

我们可以为 ln 和 sgcc 组创建两个用户,分别名为 ln_write_user 和 sgcc_write_user,两个密码都是write_pwd。SQL 语句为:

CREATE USER ln_write_user 'write_pwd'
CREATE USER sgcc_write_user 'write_pwd'

然后使用以下 SQL 语句向用户显示:

LIST USER

从下面显示的结果可以看出,已创建两个用户:

+---------------+
|           user|
+---------------+
|  ln_write_user|
|           root|
|sgcc_write_user|
+---------------+
Total line number = 3
It costs 0.004s

授予用户权限

此时,虽然已经创建了两个用户,但他们没有任何权限,因此他们无法对数据库进行操作。例如,我们使用ln_write_user在数据库中写入数据,SQL 语句为:

INSERT INTO root.ln.wf01.wt01(timestamp,status) values(1509465600000,true)

SQL 语句将不会执行,相应的错误提示如下:

Msg: 602: No permissions for this operation INSERT

现在,我们授予两个用户对相应存储组的写入权限,并尝试再次写入数据。SQL 语句为:

GRANT USER ln_write_user PRIVILEGES 'INSERT_TIMESERIES' on root.ln
GRANT USER sgcc_write_user PRIVILEGES 'INSERT_TIMESERIES' on root.sgcc
INSERT INTO root.ln.wf01.wt01(timestamp, status) values(1509465600000, true)

执行结果如下:

IoTDB> GRANT USER ln_write_user PRIVILEGES 'INSERT_TIMESERIES' on root.ln
Msg: The statement is executed successfully.
IoTDB> GRANT USER sgcc_write_user PRIVILEGES 'INSERT_TIMESERIES' on root.sgcc
Msg: The statement is executed successfully.
IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp, status) values(1509465600000, true)
Msg: The statement is executed successfully.

其他说明

用户、特权和角色之间的关系

角色是一组特权,特权和角色都是用户的属性。也就是说,一个角色可以有多个权限,一个用户可以有多个角色和特权(称为用户自己的特权)。

目前,IoTDB中不存在冲突的权限,因此用户的真正权限是用户自身权限和用户角色权限的结合。也就是说,要确定用户是否可以执行操作,取决于用户自己的权限之一或用户角色的权限是否允许该操作。用户自己的特权和用户角色的特权可能会重叠,但这并不重要。

需要注意的是,如果用户本身具有权限(对应于操作 A),并且其角色包含相同的权限,则仅从用户本身撤消权限并不能禁止用户执行操作 A,因为有必要从角色中撤消该权限,或者从用户中撤消该角色。同样,仅从用户角色撤消权限并不能禁止用户执行操作 A。

同时,对角色的更改会立即反映在拥有角色的所有用户上。例如,向角色添加某些权限将立即为拥有该角色的所有用户提供相应的权限,删除某些权限也会剥夺相应用户的权限(除非用户本身具有这些权限)。

系统中包含的特权列表

系统中包含的特权列表

privilege Name

Interpretation

SET_STORAGE_GROUP

set storage groups; path dependent

CREATE_TIMESERIES

create timeseries; path dependent

INSERT_TIMESERIES

insert data; path dependent

READ_TIMESERIES

query data; path dependent

DELETE_TIMESERIES

delete data or timeseries; path dependent

CREATE_USER

create users; path independent

DELETE_USER

delete users; path independent

MODIFY_PASSWORD

modify passwords for all users; path independent; (Those who do not have this privilege can still change their own asswords. )

LIST_USER

list all users; list a user’s privileges; list a user’s roles with three kinds of operation privileges; path independent

GRANT_USER_PRIVILEGE

grant user privileges; path independent

REVOKE_USER_PRIVILEGE

revoke user privileges; path independent

GRANT_USER_ROLE

grant user roles; path independent

REVOKE_USER_ROLE

revoke user roles; path independent

CREATE_ROLE

create roles; path independent

DELETE_ROLE

delete roles; path independent

LIST_ROLE

list all roles; list the privileges of a role; list the three kinds of operation privileges of all users owning a role; path independent

GRANT_ROLE_PRIVILEGE

grant role privileges; path independent

REVOKE_ROLE_PRIVILEGE

revoke role privileges; path independent

CREATE_FUNCTION

register UDFs; path independent

DROP_FUNCTION

deregister UDFs; path independent

CREATE_TRIGGER

create triggers; path independent

DROP_TRIGGER

drop triggers; path independent

START_TRIGGER

start triggers; path independent

STOP_TRIGGER

stop triggers; path independent

用户名限制

IoTDB指定用户名的字符长度不能小于4,并且用户名不能包含空格。

密码限制

IoTDB 指定密码的字符长度不应小于 4 个字符长度,并且不能有空格。密码使用 MD5 加密。

角色名称限制

IoTDB 指定角色名称的字符长度应不小于 4 个字符,并且不能有空格。

标签:Management,角色,Administration,用户,write,IoTDB,user,path,权限
From: https://blog.51cto.com/u_15123639/7521802

相关文章

  • Apache IoTDB开发系统之Java 原生接口
    安装依赖JDK>=1.8Maven>=3.6安装方法在根目录下运行:mvncleaninstall-plsession-am-Dmaven.test.skip=true在MAVEN中使用原生接口<dependencies><dependency><groupId>org.apache.iotdb</groupId><artifactId>iotdb-session</......
  • Apache IoTDB开发系统之语法规则
    字面值常量该部分对IoTDB中支持的字面值常量进行说明,包括字符串常量、数值型常量、时间戳常量、布尔型常量和空值。字符串常量字符串是由单引号(')或双引号(")字符括起来的字符序列。示例如下:'astring'"anotherstring"字符串字面值的使用场景:INSERT 或者 SELECT 中用于表达 TE......
  • 仓库管理系统WarehouseManagement类
    packagedemo3;importjava.util.ArrayList;importjava.util.Objects;importjava.util.Scanner;publicclassWarehouseManagement{publicstaticvoidmain(String[]args){ArrayList<WarehouseInformation>list=newArrayList<>();b......
  • Apache IoTDB开发系统之JDBC
    DependenciesJDK>=1.8Maven>=3.1PackageonlyJDBCprojects在根目录中执行以下命令:mvncleanpackage-pljdbc-am-DskipTests如何在本地maven存储库中安装在根目录中:mvncleaninstall-pljdbc-am-Dmaven.test.skip=true将IoTDBJDBC与Maven结合使用<dependencies......
  • 【RabbitMQ】服务启动成功,无法访问localhost_15672(RabbitMQ Management)
    问题描述RabbitMQ服务已经启动成功,已经安装rabbitmq_management插件,无法访问RabbitMQManagement(http://localhost:15672/)。原因分析15672端口被MicrosoftEdge占用。解决方案打开cmd终端,输入指令:netstat-ano|findstr15672TCP127.0.0.1:8323127.0.0.1:15672......
  • 【API Management】使用 APIM Inbound Policy 来修改Content-Type Header的值
    问题描述在使用APIM提供API服务管理的场景中,遇见了客户端请求时候发送的请求Header中的Content-Type不满足后台服务器的要求,但是在客户端要求客户修改代码难度较高。所以面对这样的情况,是否在APIM端修改为对请求的Content-Type进行覆写呢?问题解答可以的。APIM支持通过设置策略(Poli......
  • Microsoft SQL Server Management Studio 常用的快捷键不见了
    问题安装SSMS18.1后,发现隐藏/显示结果窗格的快捷键Ctrl+R没法用了分析当Ctrl+R时,状态栏看到有反应,说明快捷键默认被转给其他功能了。翻一翻菜单,发现是这里用了,如图。解决移除已有的快捷键为结果窗格设置设置快捷键......
  • Apache IoTDB开发系统整合之Hive TsFile
    TsFile-Hive-Connector用户指南关于TsFile-Hive-ConnectorTsFile-Hive-Connector实现了Hive对Tsfile类型的外部数据源的支持。这使用户能够按Hive操作Tsfile。使用此连接器,您可以将单个TsFile从本地文件系统或hdfs加载到hive中将特定目录中的所有文件(从本地文件系统或......
  • Memory management
    概述本节主要讨论数据在内存和硬盘之间的移动的管理,可以分为两个部分,空间控制(SpatialControl)和时间控制(TemporalControl)。spatialcontrol决定将pages写到磁盘的哪个位置,使得常常在一起使用的pages能离得比较近,从而提高I/O效率。temporalcontrol决定何时将pages......
  • Apache IoTDB开发系统整合之MapReduce TsFile
    TsFile-Hadoop-ConnectorUserGuide关于TsFile-Hadoop-ConnectorTsFile-Hadoop-Connector实现了Hadoop对Tsfile类型的外部数据源的支持。这使用户能够通过Hadoop读取,写入和查询Tsfile。使用此连接器,咱们就可以:将单个TsFile从本地文件系统或hdfs加载到Hadoop中将特定目......