我正在考虑将QuestDb用于一个小型业余项目,但我似乎无法理解QuestDb中如何处理身份验证。我偷看了一下企业页面,它看起来几乎像是只有企业才能使用身份验证。
文档显示了Influxdb Line Protocol的身份验证,但没有类似于mysql和它的数据库用户。
如何创建数据库用户并锁定QuestDb仅与具有正确权限的认证用户/用户一起使用?
对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问题
中讨论过。