Database Cassandra-数据中心数据隔离

Database Cassandra-数据中心数据隔离,database,security,cassandra,Database,Security,Cassandra,我正在建立一个ApacheCassandra集群,我想将某些数据隔离到某些数据中心。我知道我可以通过复制因子限制数据存储的位置,但这还不够。 我有键空间DC1DATA、DC2DATA、ALL,我希望我的DC1数据 A) 存储在DC1中-通过复制因子解决 B) 无法从DC2访问(就像您不能以管理员用户身份运行select语句一样) 我希望两个数据中心都能访问“ALL”键空间。 我能做到吗 这就是我为设置键空间所做的工作(例如,有1个节点x数据中心,总共2个节点): 但我仍然可以连接到DC1中的

我正在建立一个ApacheCassandra集群,我想将某些数据隔离到某些数据中心。我知道我可以通过复制因子限制数据存储的位置,但这还不够。 我有键空间DC1DATA、DC2DATA、ALL,我希望我的DC1数据

  • A) 存储在DC1中-通过复制因子解决
  • B) 无法从DC2访问(就像您不能以管理员用户身份运行select语句一样)
我希望两个数据中心都能访问“ALL”键空间。 我能做到吗

这就是我为设置键空间所做的工作(例如,有1个节点x数据中心,总共2个节点):

但我仍然可以连接到DC1中的任何节点并执行以下操作

cqlsh> use dc2data;
cqlsh:dc2data> create table if not exists test (
  name         text,
  lastname     text,
  primary key ((lastname),name)
);
cqlsh:dc2data> insert into test (name, lastname) values ('Homer','Simpson');
cqlsh:dc2data> select * from test;

 lastname  | name
 ----------+----------
   Simpson |    Homer    

这就是我想要避免的:从dc1中看到dc2data键空间。可能吗?甚至是管理员用户

好奇为什么会有这样的用例?分离是地理上的,不同的国家。一些数据和一些需要共享的应用程序数据都有合同义务。那么,它能更好地与不同的集群一起服务吗?这是我目前的方向,但最好避免开销。
cqlsh> use dc2data;
cqlsh:dc2data> create table if not exists test (
  name         text,
  lastname     text,
  primary key ((lastname),name)
);
cqlsh:dc2data> insert into test (name, lastname) values ('Homer','Simpson');
cqlsh:dc2data> select * from test;

 lastname  | name
 ----------+----------
   Simpson |    Homer