在 RethinkDB 数据库中隔离客户
Isolate customers in RethinkDB database
我正在寻找一种策略来在具有数据隔离的客户之间实施共享的 RethinkDB 集群。
我希望有多个客户使用共享的 RethinkDB 集群,但我不确定如何强制执行数据分离。客户的请求不可信,但他们应该可以使用 RethinkDB API.
完全访问自己的数据
它看起来像是多租户数据库的经典案例(我不确定),但我找不到足够的信息来说明如何使用 RethinkDB 做到这一点。
另一个想法:也许我也可以制作一个包装器并在每个 table 前加上一个 customerID,但他们能绕过它吗?有没有办法做一些像 r.db('customerID')
这样在查询的其余部分不能改变的事情?这取决于特定的驱动程序吗?
如何隔离 RethinkDB 中的客户?
注意: 我打算使用 https://github.com/apa512/clj-rethinkdb 以防万一,但我也接受使用 JavaScript 的任何答案。
我认为这是一个开放式问题。 RethinkDB 身份验证只需要一个 Auth Key。基本上,据我所知,它共享整个服务器数据,甚至跨数据库。
因此,对于您的情况,我认为最好 运行 多个 docker 来隔离数据。每个客户也有自己的 IP 地址来连接,还有他们自己的身份验证密钥,当然还有他们自己的数据。
maybe I could also make a wrapper and prefix every table with a customerID, but would they be able to bypass that
没有什么可以阻止,整个集群共享 Auth 密钥。
Is there a way to do something like r.db('customerID') that cannot be changed in the rest of the query
不确定,但我认为目前不可能。
看起来使用单独的 RethinkDB 实例,使用像 Docker 这样的解决方案是可行的方法。
创建新客户时,启动 RethinkDB docker 容器,将 RethinkDB 端口映射到主机上可用的随机端口。并将那些 host:port URI 字符串提供给客户。
您可能想在 compose.io、redistogo.com 上注册一个帐户并尝试猜测他们是如何注册的,因为他们的每个客户都有自己的数据。而且我觉得和你的情况很像。
我正在寻找一种策略来在具有数据隔离的客户之间实施共享的 RethinkDB 集群。
我希望有多个客户使用共享的 RethinkDB 集群,但我不确定如何强制执行数据分离。客户的请求不可信,但他们应该可以使用 RethinkDB API.
完全访问自己的数据它看起来像是多租户数据库的经典案例(我不确定),但我找不到足够的信息来说明如何使用 RethinkDB 做到这一点。
另一个想法:也许我也可以制作一个包装器并在每个 table 前加上一个 customerID,但他们能绕过它吗?有没有办法做一些像 r.db('customerID')
这样在查询的其余部分不能改变的事情?这取决于特定的驱动程序吗?
如何隔离 RethinkDB 中的客户?
注意: 我打算使用 https://github.com/apa512/clj-rethinkdb 以防万一,但我也接受使用 JavaScript 的任何答案。
我认为这是一个开放式问题。 RethinkDB 身份验证只需要一个 Auth Key。基本上,据我所知,它共享整个服务器数据,甚至跨数据库。
因此,对于您的情况,我认为最好 运行 多个 docker 来隔离数据。每个客户也有自己的 IP 地址来连接,还有他们自己的身份验证密钥,当然还有他们自己的数据。
maybe I could also make a wrapper and prefix every table with a customerID, but would they be able to bypass that
没有什么可以阻止,整个集群共享 Auth 密钥。
Is there a way to do something like r.db('customerID') that cannot be changed in the rest of the query
不确定,但我认为目前不可能。
看起来使用单独的 RethinkDB 实例,使用像 Docker 这样的解决方案是可行的方法。
创建新客户时,启动 RethinkDB docker 容器,将 RethinkDB 端口映射到主机上可用的随机端口。并将那些 host:port URI 字符串提供给客户。
您可能想在 compose.io、redistogo.com 上注册一个帐户并尝试猜测他们是如何注册的,因为他们的每个客户都有自己的数据。而且我觉得和你的情况很像。