【问题标题】:Authentication in Influx allows all usernamesInflux 中的身份验证允许所有用户名
【发布时间】:2021-06-11 13:06:29
【问题描述】:

我正在使用 docker 映像 influxdb:1.8,我想使用 Python 从另一个容器中连接到我的 influx 数据库。我想出了如何在没有太多环顾四周的情况下做到这一点。但是,我注意到无论我使用哪个用户名或密码,我都能够连接到我的数据库(甚至查询数据!)。

我的实验是使用 InfluxDBClient 和一些随机的用户名和密码连接到 Influx。它不仅有效,而且打印 client_variable._username 或 client_variable._password 也有效。但是,revoke_admin_privileges 方法引发了“InfluxDBClientError: user not found”

为什么我启动客户端对象时没有出现这个错误?

为了更好的理解,我连接了 Influx 容器,在本地启动了 Influx。在那里,“show users”命令没有返回已知用户,这也让我感到惊讶,因为在我的 docker-compose.yml 文件中,我指定了我想要使用的用户名和密码。

对这一切有什么想法吗?

PS : 这是我的 docker-compose.yml 中创建容器的部分。

  influxdb:
image: influxdb:1.8
restart: always
ports:
  - "8086:8086"
environment:
  - INFLUXDB_DB=first
  - INFLUXDB_ADMIN_USER=some_user
  - INFLUXDB_ADMIN_PASSWORD=your_password_hehe
  - INFLUXDB_HTTP_AUTH_ENABLED=false
networks:
  - mynetwork
volumes:
  - ./volumes/influxdb-volume:/var/lib/influxdb
cpus: 0.80
logging:
  driver: "none"

【问题讨论】:

  • INFLUXDB_HTTP_AUTH_ENABLED=false 如果将其设置为 True 会怎样?
  • 我想我真的很累,我什至没有看到。我现在就试试。

标签: python docker influxdb influxdb-python


【解决方案1】:

要激活认证系统,您必须将INFLUXDB_HTTP_AUTH_ENABLED 设置为true

作为,根据https://github.com/influxdata/influxdb/blob/1.8/docker/init-influxdb.sh

...
AUTH_ENABLED="$INFLUXDB_HTTP_AUTH_ENABLED"

if [ -z "$AUTH_ENABLED" ]; then
    AUTH_ENABLED="$(grep -iE '^\s*auth-enabled\s*=\s*true' /etc/influxdb/influxdb.conf | grep -io 'true' | cat)"
else
    AUTH_ENABLED="$(echo ""$INFLUXDB_HTTP_AUTH_ENABLED"" | grep -io 'true' | cat)"
fi
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 2023-04-09
    • 2021-03-23
    相关资源
    最近更新 更多