有没有办法限制对Cassandra的访问? 在mysql中,用户需要用户名和密码才能获得访问权限,包括工作台等工具。是否有任何此类系统或CLI和cqlsh工具是否可以访问Cassandra?
答案 0 :(得分:4)
您使用的是哪个版本的Cassandra?对于1.2.2及更高版本,您可以使用PasswordAuthenticator和CassandraAuthorizer进行身份验证,如文档(http://www.datastax.com/docs/1.2/security/native_authentication)中所述:
1-将cassandra.yaml身份验证器设置更改为 PasswordAuthenticator:
authenticator: org.apache.cassandra.auth.PasswordAuthenticator
您还需要将auhorizer设置为CassandraAuthorizer:
authorizer: com.datastax.bdp.cassandra.auth.CassandraAuthorizer
2- Configure the replication factor for the
system_auth
keyspace。3-重启Cassandra。
您使用的默认超级用户名和密码(cassandra) 启动支持的客户端存储在Cassandra中。例如,到 启动cqlsh:
./cqlsh -u cassandra -p cassandra
您现在可以设置用户帐户和 授权用户使用CQL授予访问数据库对象的权限 他们对这些对象的权限。
当然,您需要阅读有关如何“更改超级用户密码”的信息(在上面的链接中)。
一旦你完成了这个,可以调用cassandra-cli来解释上面例子中的cqlsh:
./cassandra-cli -u username -pw password
要获得概述,您还应该查看文档:{{3}}
答案 1 :(得分:2)
我发现的only resource与身份验证相关:
在版本1.2.2中,我们提供了内部身份验证和 授权,允许您管理内部的登录ID和密码 Cassandra,以及谁可以在数据库集群中做什么 授权(即权限)视角。
转过来,这让我看到了Security management
上的DataStax Enterprise 3.0文档http://www.datastax.com/docs部分DataStax Enterprise 3.0包含许多用于保护的功能 数据。安全框架为。提供高级数据保护 企业级数据库。您可以保护DataStax社区或 使用这些功能的DataStax Enterprise群集。
使用登录帐户和密码进行内部身份验证 基于GRANT / REVOKE范例的对象权限管理 客户端使用SSL对从客户端到Cassandra集群的数据进行节点加密
DataStax Enterprise提供额外的安全性,不包括在内 DataStax社区,企业用于任务关键型数据:
Kerberos身份验证:一种网络身份验证协议,允许通过非安全网络进行通信的节点证明其身份 使用门票以安全的方式相互认同。你也可以 设置Kerberos以使用LDAP进行身份验证。
透明数据加密:将从系统内存中的memtable刷新到磁盘上的SSTables(其余数据)的数据编码为 对未经授权的用户不可读。发生加密和解密 没有用户干预。
数据审核:管理员创建群集活动详细审核跟踪的功能。
顺便说一下,DataStax Community – Comparative of DataStax Enterprise Edition and DataStax Community Edition说:
DataStax社区版:包含最新版本的 用于实时数据管理的Cassandra数据库,以及免费版本 DataStax OpsCenter。生产系统不支持。
包括DataStax社区版:
安全功能一般安全功能
而非提及的DataStax Enterprise:
安全功能常规和高级安全功能
总之,看看自1.2.2版本以来实施的安全功能,根据您需要的安全部分,您可能根本不需要付费。
其他参考: Apache Cassandra 1.2 Documentation - Security section包含以下资源: