我正在考虑为一个小的业余爱好项目使用QuestDb,但是我似乎不能理解在QuestDb中如何处理身份验证。我偷看了一下Enterprise页面,它几乎看起来身份验证只对企业可用。
docs显示了Influxdb Line Protocol的身份验证,但与mysql及其数据库用户没有任何相似之处。
如何创建数据库用户并将QuestDb锁定为仅供经过身份验证的用户/具有正确权限的用户使用?
发布于 2021-03-03 18:56:15
通过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)中指定的默认连接凭据,例如更改默认用户名和密码,并仅启用您正在使用的读写协议。
根据安装部署位置的不同,您可以采取超出QuestDB配置本身的步骤,将传入/传出网络连接(例如在EC2上)列入白名单,仅允许来自特定IP或私有网络内的连接。
如果您确实需要让多个数据库用户具有基于角色的访问权限,那么可以使用open an issue with a feature request。
可能值得注意的是,您还可以将服务器设置为只读模式,即discussed in another stackoverflow question模式
https://stackoverflow.com/questions/66398133
复制相似问题