有没有办法在InfluxDB中创建用户并启用身份验证?免责声明:我是InfluxDB的新手。
我通过在auth-enabled = true
文件的http
部分设置influxdb.conf
,创建了一个运行InfluxDB且启用了身份验证的Docker容器。
[http]
...
# Determines whether user authentication is enabled over HTTP/HTTPS.
auth-enabled = true
...
由于没有用户,我尝试使用以下命令创建一个:
docker exec influxdb influx -execute "create user admin with password 'blabla' with all privileges"
但是,
失败了"stdout": "ERR: error authorizing query: no user provided
所以这是一种鸡蛋问题。您无法创建用户,因为这需要首先以用户身份登录。
禁用身份验证时有效。所以我可以做到以下几点:
但在这种情况下,我必须将配置存储在特定的Docker卷中,当任何人无需身份验证即可登录时,它仍然会留下一个窗口。所以它可以自动化,但它不是一个优雅的解决方案。
这个问题有优雅的解决方案吗?
答案 0 :(得分:3)
2021 年更新:在 Docker 的 InfluxDB 中自动创建管理员/用户时,显然可能存在一些警告/边缘情况 - 请参阅此处:https://github.com/influxdata/influxdata-docker/issues/232
如果您标记以下消息:“先创建管理员用户或禁用身份验证”,即使您按照@adebasi 的建议设置了环境,那么上面的链接可能会帮助您解决问题。 >
我刚刚检查了最新的官方 InfluxDB docker 并且它可以工作,但是,如上述链接中所述,如果 meta
下存在 /var/lib/influxdb
目录(即使为空),则用户不会t 被创建。
还有另一种情况 - 在使用适用于 RaspberryPi Zero (https://hub.docker.com/r/mendhak/arm32v6-influxdb) 的非官方 InfluxDB docker 时,此创建用户的功能不存在,或者至少对我不起作用(我已经检查了 docker 图像和我没有看到创建用户的代码)。
答案 1 :(得分:2)
大多数数据库映像提供了一种通过环境变量配置admin-user
和admin-passwort
的方法。 InfluxDB也这样做:
https://hub.docker.com/_/influxdb/
在容器中设置环境变量INFLUXDB_ADMIN_USER
和INFLUXDB_ADMIN_PASSWORD
,以创建具有给定密码的admin用户。您还可以通过环境变量INFLUXDB_HTTP_AUTH_ENABLED