一、介绍
权限认证机制,顾名思义,就是对 InfluxDB 数据库添加权限访问控制,在默认情况下,InfluxDB 的权限认证机制是关闭的,也就是说所有用户都有所有权限。
老规矩,直接实践上手,下图是 InfluxDB 开启权限认证机制后,登录数据库后 'show databases;' 提示权限认证失败,即无法查看数据库信息。
$ influx -precision rfc3339 Connected to http://localhost:8086 version 1.7.7 InfluxDB shell version: 1.7.7 > show databases; ERR: unable to parse authentication credentials Warning: It is possible this error is due to not setting a database. Please set a database with the command "use". >
接下来,我们执行 auth 来进行用户权限认证,认证成功后则能查看用户权限内的数据库信息。
> auth username: rw_influxdb_de password: > show databases; name: databases name ---- _internal kwang_db
看到这里,应该大概明白了 InfluxDB 权限认证机制的基本作用了吧,那 InfluxDB 如何开启权限认证机制呢,别着急,继续往下看。
二、开启 InfluxDB 权限认证机制
开启 InfluxDB 权限认证机制有三步:
- 添加 admin 账号,至少添加一个 admin 账号;
- 修改 InfluxDB 配置文件;
- 重启 InfluxDB 服务;
2.1 添加 admin 账号
在初次登录时,InfluxDB 是没有开启权限认证的,可以通过如下操作添加一个 admin 账号:
> create user rw_influxdb with password '12345' with all privileges;
查看 rw_influxdb 账号是否属于 admin 账号
> show users; user admin ---- ----- rw_influxdb true
ok,admin 账号已添加成功。
2.2 修改 InfluxDB 配置文件
修改 /etc/influxdb/influxdb.conf 配置文件:
[http] auth-enabled = true
将配置文件中 [http] 模块中的 auth-enabled 参数设置成 true,即表示开启权限认证机制,是不是so easy。
2.3 重启 InfluxDB 服务
service influxdb restart
再次登录 InfluxDB 出现如下结果则表示权限认证机制成功开启。
$ influx -precision rfc3339 Connected to http://localhost:8086 version 1.7.7 InfluxDB shell version: 1.7.7 > show databases; ERR: unable to parse authentication credentials Warning: It is possible this error is due to not setting a database. Please set a database with the command "use". >
看到这里,很多用户可能还有个疑惑,在 2.1 中添加了 admin 账号,那在 InfluxDB 中账号/用户是如何管理的呢,在 “InfluxDB用户管理“一文中将会进行介绍。
【参考资料】
[1]. http://docs.influxdata.com/influxdb/v1.7/administration/authentication_and_authorization/#authorization