【问题标题】:How do I authenticate QuestDb with database users如何向数据库用户验证 QuestDb
【发布时间】:2021-02-27 11:03:01
【问题描述】:

我正在考虑将 QuestDb 用于一个小型业余项目,但我似乎无法理解 QuestDb 是如何处理身份验证的。我偷看了Enterprise 页面,几乎看起来身份验证只对企业可用。

docs 显示了 Influxdb 线路协议的身份验证,但没有类似于 mysql 及其数据库用户的内容。

如何创建数据库用户并将 QuestDb 锁定为仅与经过身份验证的用户/具有正确权限的用户一起使用?

【问题讨论】:

    标签: database authentication questdb


    【解决方案1】:

    通过 InfluxDB 线路协议的身份验证仅作为此协议的功能请求添加,并确保只有写入 QuestDB 的客户端在被允许将记录发送到表之前经过身份验证。

    对于通过 Postgres 网络进行身份验证,有相当于 基于主机的身份验证,即在 Node.js 中,这看起来像:

    const { Client } = require("pg")
    
    const start = async () => {
      const client = new Client({
        database: "qdb",
        host: "127.0.0.1",
        password: "quest",
        port: 8812,
        user: "admin",
      })
      await client.connect()
      console.log("Connected")
    }
    
    start()
    

    目前仅支持一个数据库和一个管理员用户,您应该记住,任何可以使用这些凭据连接到主机的人都具有数据库访问权限,并且可以读取/写入该主机上的表。

    如果您想确保您的安装被锁定,您至少应该更改server configuration file (server.conf) 中指定的默认连接凭据,例如更改默认用户名和密码,并且只启用协议( s) 你正在阅读和写作。

    根据安装部署的位置,您可以采取超越 QuestDB 配置本身的步骤并将传入/传出网络连接(例如在 EC2 上)列入白名单,以仅允许来自特定 IP 或 VPC 内的连接,例如.

    如果您确实需要多个具有基于角色的访问权限的数据库用户,请随时open an issue with a feature request

    编辑:值得注意的是,您还可以将 HTTP 服务器设置为只读模式,即discussed in another stackoverflow question

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      • 2010-10-11
      • 2020-02-28
      • 2021-06-12
      相关资源
      最近更新 更多