用户管理 #
一、用户管理概述 #
1.1 用户体系 #
text
InfluxDB用户体系:
用户类型
├── 超级管理员
│ └── 拥有所有权限
├── 组织用户
│ └── 属于特定组织
└── API用户
└── 通过Token认证
认证方式
├── 用户名密码
├── API Token
└── OAuth/SSO
1.2 权限模型 #
text
权限层级:
全局权限
├── owner - 组织所有者
├── operator - 操作员
└── member - 成员
资源权限
├── read - 读取
├── write - 写入
└── delete - 删除
权限范围
├── 组织级别
├── Bucket级别
└── Task级别
二、用户操作 #
2.1 创建用户 #
bash
# 创建用户
influx user create \
--name developer \
--password Dev@123 \
--org my-org
# 创建超级管理员
influx user create \
--name admin \
--password Admin@123 \
--org my-org \
--operator
# 查看用户列表
influx user list
2.2 查看用户 #
bash
# 列出所有用户
influx user list
# 查看特定用户
influx user list --name developer
# 按ID查看
influx user list --id USER_ID
2.3 更新用户 #
bash
# 更新用户名
influx user update \
--id USER_ID \
--name new-name
# 更新密码
influx user password \
--name developer \
--password NewPass@123
2.4 删除用户 #
bash
# 删除用户
influx user delete --id USER_ID
# 按名称删除
influx user delete --name developer
三、组织成员管理 #
3.1 添加成员 #
bash
# 将用户添加到组织
influx org members add \
--org my-org \
--member-id USER_ID
# 添加为所有者
influx org members add \
--org my-org \
--member-id USER_ID \
--owner
3.2 查看成员 #
bash
# 查看组织成员
influx org members list --org my-org
# 查看所有者
influx org members list --org my-org --owner
3.3 移除成员 #
bash
# 从组织移除用户
influx org members remove \
--org my-org \
--member-id USER_ID
四、Token管理 #
4.1 Token类型 #
text
Token类型:
All-Access Token
├── 完全访问权限
├── 管理员使用
└── 谨慎使用
Operator Token
├── 操作员权限
├── 管理资源
└── 不含用户管理
Read/Write Token
├── 读写特定Bucket
├── 应用程序使用
└── 最小权限原则
Read-only Token
├── 只读权限
├── 查询和可视化
└── 安全性最高
4.2 创建Token #
bash
# 创建All-Access Token
influx auth create \
--org my-org \
--all-access \
--description "管理员Token"
# 创建Operator Token
influx auth create \
--org my-org \
--operator \
--description "操作员Token"
# 创建读写Token
influx auth create \
--org my-org \
--read-bucket my-bucket \
--write-bucket my-bucket \
--description "应用读写Token"
# 创建只读Token
influx auth create \
--org my-org \
--read-bucket my-bucket \
--description "只读Token"
4.3 查看Token #
bash
# 列出所有Token
influx auth list
# 查看特定Token
influx auth list --id AUTH_ID
# 按用户查看
influx auth list --user developer
4.4 管理Token #
bash
# 禁用Token
influx auth update \
--id AUTH_ID \
--inactive
# 启用Token
influx auth update \
--id AUTH_ID \
--active
# 删除Token
influx auth delete --id AUTH_ID
五、权限配置 #
5.1 权限类型 #
text
权限详细说明:
读取权限
├── read:buckets - 读取所有Bucket
├── read:bucket-id - 读取特定Bucket
├── read:orgs - 读取组织信息
├── read:tasks - 读取任务
└── read:users - 读取用户信息
写入权限
├── write:buckets - 写入所有Bucket
├── write:bucket-id - 写入特定Bucket
├── write:orgs - 管理组织
├── write:tasks - 管理任务
└── write:users - 管理用户
删除权限
├── delete:buckets - 删除Bucket
└── delete:bucket-id - 删除特定Bucket数据
5.2 创建特定权限Token #
bash
# 创建多Bucket读写Token
influx auth create \
--org my-org \
--read-bucket bucket1 \
--read-bucket bucket2 \
--write-bucket bucket1 \
--write-bucket bucket2 \
--description "多Bucket Token"
# 创建任务管理Token
influx auth create \
--org my-org \
--read-tasks \
--write-tasks \
--description "任务管理Token"
# 创建仪表板Token
influx auth create \
--org my-org \
--read:buckets \
--read:orgs \
--description "仪表板Token"
六、安全最佳实践 #
6.1 密码策略 #
text
密码安全建议:
强度要求
├── 最少8个字符
├── 包含大小写字母
├── 包含数字
├── 包含特殊字符
└── 避免常见密码
管理建议
├── 定期更换密码
├── 不共享密码
├── 使用密码管理器
└── 启用多因素认证
6.2 Token安全 #
text
Token安全建议:
存储安全
├── 不提交到版本控制
├── 使用环境变量
├── 使用密钥管理服务
└── 加密存储
使用建议
├── 最小权限原则
├── 定期轮换
├── 及时撤销
└── 分类管理
监控审计
├── 记录Token使用
├── 监控异常访问
├── 定期审计权限
└── 及时清理废弃Token
6.3 网络安全 #
bash
# 启用HTTPS
[http]
bind-address = ":443"
auth-enabled = true
https-enabled = true
https-certificate = "/path/to/cert.pem"
https-private-key = "/path/to/key.pem"
# 配置防火墙
sudo ufw allow 8086/tcp
sudo ufw enable
七、API认证 #
7.1 使用Token认证 #
bash
# HTTP请求使用Token
curl -X GET "http://localhost:8086/api/v2/buckets" \
--header "Authorization: Token YOUR_TOKEN"
# 写入数据
curl -X POST "http://localhost:8086/api/v2/write?org=my-org&bucket=my-bucket" \
--header "Authorization: Token YOUR_TOKEN" \
--data "temperature value=23.5"
7.2 客户端认证 #
python
# Python客户端认证
from influxdb_client import InfluxDBClient
client = InfluxDBClient(
url="http://localhost:8086",
token="YOUR_TOKEN",
org="my-org"
)
javascript
// JavaScript客户端认证
const {InfluxDB} = require('@influxdata/influxdb-client');
const client = new InfluxDB({
url: 'http://localhost:8086',
token: 'YOUR_TOKEN'
});
八、审计日志 #
8.1 查看审计日志 #
bash
# 查看服务日志
journalctl -u influxdb
# 查看Docker日志
docker logs influxdb
# 查看文件日志
tail -f /var/log/influxdb/influxd.log
8.2 启用详细日志 #
toml
# 配置文件
[logging]
level = "debug"
format = "json"
九、完整示例 #
9.1 创建开发环境用户 #
bash
#!/bin/bash
# setup_dev_users.sh
ORG="development"
# 创建开发者用户
influx user create \
--name dev-user \
--password Dev@123 \
--org "$ORG"
# 创建开发Token
influx auth create \
--org "$ORG" \
--read-buckets \
--write-buckets \
--description "开发环境Token"
# 创建只读Token
influx auth create \
--org "$ORG" \
--read-buckets \
--description "开发环境只读Token"
9.2 创建生产环境用户 #
bash
#!/bin/bash
# setup_prod_users.sh
ORG="production"
# 创建管理员
influx user create \
--name prod-admin \
--password SecurePass@123 \
--org "$ORG" \
--operator
# 创建应用用户
influx user create \
--name app-user \
--password AppPass@123 \
--org "$ORG"
# 创建应用Token(最小权限)
influx auth create \
--org "$ORG" \
--read-bucket metrics \
--write-bucket metrics \
--description "应用Token"
# 创建监控Token(只读)
influx auth create \
--org "$ORG" \
--read-bucket metrics \
--description "监控Token"
十、总结 #
用户管理要点:
- 最小权限原则:只授予必要权限
- Token管理:定期轮换,及时撤销
- 密码安全:强密码,定期更换
- 审计监控:记录操作,监控异常
- 网络安全:启用HTTPS,配置防火墙
下一步,让我们学习备份与恢复!
最后更新:2026-03-27