身份验证与授权
InfluxDB 的 HTTP API 和 CLI 都支持基于用户名和密码的内建权限控制。开启身份验证后,HTTP 请求必须携带有效凭证,否则会被拒绝。
设置身份验证
开启认证前,先创建一个管理员用户。默认情况下,身份验证是关闭的,需要在配置文件中把 [http] 里的 auth-enabled 设置为 true,然后重启服务。
常见的操作方式有两种:
- 先进入控制台,再执行认证命令:
$ influx
Connected to http://localhost:8086 version 0.9.4.1
InfluxDB shell 0.9.4.1
> auth user pwd
- 直接在启动时指定用户名和密码:
influx -username user -password abcd
用户类型及其权限
管理员
管理员拥有所有数据库的读写权限,同时可以执行一系列管理类语句,包括:
数据库管理:
CREATE DATABASE、DROP DATABASEDROP SERIES、DROP MEASUREMENTCREATE RETENTION POLICY、ALTER RETENTION POLICY、DROP RETENTION POLICYCREATE CONTINUOUS QUERY、DROP CONTINUOUS QUERY
用户管理:
- 管理员用户管理:
CREATE USER、GRANT ALL PRIVILEGES、REVOKE ALL PRIVILEGES、SHOW USERS - 普通用户管理:
CREATE USER、GRANT [READ, WRITE, ALL]、REVOKE [READ, WRITE, ALL]、SHOW GRANTS - 通用账号管理:
SET PASSWORD、DROP USER
非管理员用户
普通用户只能被授予三种权限之一:
READWRITEALL(同时包含READ和WRITE)
这些权限是按数据库维度授予的,也就是说,同一个用户可以在不同数据库上拥有不同权限。
用户管理命令
管理员用户管理
创建一个新的管理员用户:
CREATE USER <username> WITH PASSWORD '<password>' PRIVILEGES

