2

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

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

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

4

1 回答 1

0

通过 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.conf) 中指定的默认连接凭据,例如更改默认用户名和密码,并且只启用您正在阅读的协议和写作。

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

如果您确实需要多个具有基于角色的访问权限的数据库用户,请随时使用功能请求打开问题

编辑:可能值得注意的是,您还可以将 HTTP 服务器设置为只读模式,这在另一个 stackoverflow 问题中讨论过

于 2021-03-03T10:56:14.950 回答