FoundationDB身份验证

时间:2018-06-27 19:36:58

标签: nosql foundationdb

FoundationDB群集可以配置为使用SSL / TLS,但是可以在不知道群集的fdb.cluster文件的情况下连接到群集吗?

换句话说,fdb.cluster文件是否等效于其他数据库系统中的用户名/密码安全方案?

2 个答案:

答案 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)。