身份驗證與授權
InfluxDB的HTTP API和CLI(command line interface),通過簡單的基於證書的內建權限控制,使用API鏈接數據庫。啓動身份驗證後,http請求只有加入證書才能被接受。
設置身份驗證
- 創建一個admin用戶
- 默認情況下,在配置文件中,身份驗證是關閉的。可以通過設置
[http]
中的auth-enabled=true
來開啓 - 重啓應用
有兩種操作方式:
- 啓動控制檯後,再設置用戶
auth <username> <password>
:
$ influx
Connected to http://localhost:8086 version 0.9.4.1
InfluxDB shell 0.9.4.1
> auth user pwd
>
- 以用戶名密碼啓動:
influx -username useer -password abcd
用戶類型及其權限
管理員
所有管理員有所有數據庫的讀寫權限,並且可以執行以下所有的管理類查詢語句:
數據庫管理:
◦ CREATE DATABASE
, 和 DROP DATABASE
◦ DROP SERIES
和 DROP MEASUREMENT
◦ CREATE RETENTION POLICY
, ALTER RETENTION POLICY
, 和 DROP RETENTION POLICY
◦ CREATE CONTINUOUS QUERY
和 DROP CONTINUOUS QUERY
用戶管理:
◦ Admin user management: CREATE USER
, GRANT ALL PRIVILEGES
, REVOKE ALL PRIVILEGES
, 和 SHOW USERS
◦ Non-admin user management: CREATE USER
, GRANT [READ,WRITE,ALL], REVOKE [READ,WRITE,ALL
], 和 SHOW GRANTS
◦ General user management: SET PASSWORD
和 DROP USER
非管理員用戶
非管理員用戶可以賦一種權限:
◦ READ
◦ WRITE
◦ ALL
(READ
和 WRITE
)
這三種情況可以賦給每個用戶,每個數據庫。
用戶管理命令
管理員用戶管理
- 創建一個新的管理員用戶
CREATE USER <username> WITH PASSWORD '<password>' WITH ALL PRIVILEGES
- 爲一個已有用戶授權管理員權限
GRANT ALL PRIVILEGES TO <username>
- 取消用戶權限
REVOKE ALL PRIVILEGES FROM <username>
- 展示用戶及其權限
SHOW USERS
非管理員用戶管理
- 創建一個新的普通用戶
CREATE USER <username> WITH PASSWORD '<password>'
- 爲一個已有用戶授權
GRANT [READ,WRITE,ALL] ON <database_name> TO <username>
- 取消權限
REVOKE [READ,WRITE,ALL] ON <database_name> FROM <username>
- 展示用戶在不同數據庫上的權限
SHOW GRANTS FOR <user_name>
普通用戶賬號功能管理
- 重設密碼
SET PASSWORD FOR <username> = '<password>'
- 刪除用戶
DROP USER <username>