用户管理 #

一、用户管理概述 #

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"

十、总结 #

用户管理要点:

  1. 最小权限原则:只授予必要权限
  2. Token管理:定期轮换,及时撤销
  3. 密码安全:强密码,定期更换
  4. 审计监控:记录操作,监控异常
  5. 网络安全:启用HTTPS,配置防火墙

下一步,让我们学习备份与恢复!

最后更新:2026-03-27