FoundationDB群集可以配置为使用SSL / TLS,但是可以在不知道群集的fdb.cluster
文件的情况下连接到群集吗?
换句话说,fdb.cluster
文件是否等效于其他数据库系统中的用户名/密码安全方案?
答案 0 :(得分:1)
没有群集文件就无法连接。这样做确实提供了一些薄弱的安全性,但是如果要在不受信任的网络中运行群集,最好使用双向TLS支持。
答案 1 :(得分:1)
fdb.cluster
文件由2个主要部分组成(请参见Cluster file format):
id
(带有可选的description
)IP:PORT
对协调器的列表。任何客户端必须能够联系列表中的至少一个协调员才能与集群对话,并且它必须具有正确的集群ID。如果没有,它将无法连接。没有内置的服务发现。
这意味着您必须向应用程序提供初始群集文件。一旦连接到协调器节点,它将能够获取完整列表并自行更新群集文件(如果拓扑发生更改)。
一种部署解决方案是让您的应用程序(或部署脚本)从内部URL(或文件共享)下载最新的fdb.cluster(如果缺少该文件),以开始安装。
关于身份验证,除非您使用TLS / SSL,否则群集文件中的“ id”部分将用作伪明文密码。即使您具有正确的一组协调器,应用程序也必须具有正确的群集ID。
尽管它应被视为与典型SQL Server中的 database 名称等效。如果您不使用SSL,则可以轻松找到并以明文形式传输。我猜想它是在防止愚蠢的错误,而不是其他任何事情(例如:输入其他群集的IP:PORT)。