influxdb分为授权和认证两部分,认证简单理解就是:开启认证后,influxdb只会执行发送带有有效用户凭据的http请求,非法请求被禁止执行。
授权指的是对某个数据库是否有读或者写的权限。

本次用到的认证方式是最简单的认证方式,用户名密码认证方式。
默认情况下安装的influxdb是不开启认证的,因此在终端中直接执行如下命令就可以接入到influxdb的命令行控制。

#进入命令行
influx

#查看所有用户
show users;

#显示如下
root@influxdb2:/etc/influxdb# influx
Connected to http://localhost:8086 version 1.8.3
InfluxDB shell version: 1.8.3
> SHOW USERS;
user admin
---- -----

从结果中可以看到,没有任何用户。

通过在influxdb的配置文件中找到如下位置,将auth-enabled项设置为true,在重启服务之前添加几个用户,并对其进行授权。

#在influxdb.conf中
[http]
auth-enabled=true

#添加一个管理员用户
create user "root" with password 'mypassword' with all privileges

#添加一个非管理员用户只赋read权
create user "abcuser" with password 'mypassword'
grant write on "mydb" to "abcuser"


#查看abcuser的权限
show grants for mydb

#查看所有用户
SHOW USERS;
user   admin
----   -----
root   true
abcuser false

可以看到abcuser是非管理员用户,有一点要注意:如果创建用户的时候携带 with all privileges则标识给予所有权限,也就是创建的管理员用户。

执行完成以上操作后,重启influxdb服务。这样我们再次通过命令函操作influxdb的时候就需要携带用户名密码了。

#influxdb中使用用户名密码登录
influx -username  root -password mypassword

#结果如下:
Connected to http://localhost:8086 version 1.8.3
InfluxDB shell version: 1.8.3

Tags: influxdb

Related Posts:

Leave a Comment