Cassandra - 数据中心数据隔离

时间:2017-07-11 15:55:08

标签: database security cassandra

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

  • A)存储在DC1中 - 通过复制因子解决
  • B)从DC2无法访问(就像你不能以管理员用户身份运行select语句)

我希望两个数据中心都可以访问" ALL"密钥空间。 我能以某种方式这样做吗?

这就是我在设置密钥空间时所做的事情(例如,有1个节点x数据中心,总共2个节点):

CREATE KEYSPACE dc1data 
  WITH REPLICATION = { 
   'class' : 'NetworkTopologyStrategy', 
   'dc1' : 1 
  } ;

  CREATE KEYSPACE dc2data 
  WITH REPLICATION = { 
   'class' : 'NetworkTopologyStrategy', 
   'dc2' : 1 
  } ;

  CREATE KEYSPACE all 
  WITH REPLICATION = { 
   'class' : 'NetworkTopologyStrategy', 
   'dc1' : 1,
   'dc2' : 1 
  } ;

但我仍然可以连接到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键空间。那可能吗?甚至管理员用户?

0 个答案:

没有答案