如何在Cassandra DB中创建第一个用户

时间:2014-03-06 02:39:46

标签: cassandra cql cqlsh

如何在cassandra数据库中创建第一个用户?

我试过了:

CREATE USER username WITH PASSWORD "";

并且它说:

Bad Request: Only superusers are allowed to perform CREATE USER queries

但是我在尝试之前从未创建过用户,那么如何在cassandra数据库中创建第一个用户呢?

这看起来有点奇怪,因为它就像鸡和蛋的问题,但人们使用Cassandra,所以我相信某处必须有解决方案。

4 个答案:

答案 0 :(得分:25)

启用身份验证和授权后,您可以以默认的Cassandra管理员用户身份登录(到您的本地Cassandra实例),如下所示:

./cqlsh localhost -u cassandra -p cassandra

如果您在Windows Server上运行Cassandra,我相信you need to invoke it with Python

python cqlsh localhost -u cassandra -p cassandra

进入后,您的首要任务应该是创建另一个超级用户帐户。

CREATE USER dba WITH PASSWORD 'bacon' SUPERUSER;

接下来,将当前Cassandra超级用户的密码设置为其他内容是一个非常好的主意...最好是长而且难以理解的东西。使用新的超级用户,您不应再次使用默认的Cassandra帐户。

ALTER USER cassandra WITH PASSWORD 'dfsso67347mething54747long67a7ndincom4574prehensi562ble';

有关详细信息,请查看此DataStax文章:A Quick Tour of Internal Authentication and Authorization Security in DataStax Enterprise and Apache Cassandra

答案 1 :(得分:3)

要开始使用身份验证,默认的超级用户用户名/密码对为cassandra/cassandra。这应该可以解决鸡和蛋的问题。

来源: http://www.datastax.com/docs/datastax_enterprise3.0/security/native_authentication

答案 2 :(得分:3)

Re:启用身份验证和授权后(从3月6日14:41由BryceAtNetwork23发表评论)

首先,是否正在更改设置身份验证所需的授权?我猜不是。

其次,如果您具有数据中心样式复制设置,则设置授权并非完全无关紧要。我使用以下步骤设置授权:

  • 在conf / cassandra.yaml中,为所有节点将身份验证器从AllowAllAuthenticator更改为PasswordAuthenticator
  • 重新启动所有节点
  • 如上所述更改了默认的'cassandra'密码并添加了其他超级用户
  • 通过运行以下命令将system_auth键空间更改为冗余(根据cassandra.yaml文件中的说明):“ALTER KEYSPACE system_auth WITH REPLICATION = {'class':'NetworkTopologyStrategy','MY_DATACENTER_NAME':N}”
  • 我将N设置为我的数据中心中的节点数(即,完全冗余)
  • 串行地对每个节点进行Ran bin / nodetool修复

这对那些知道自己在做什么的人来说听起来是否合理?

答案 3 :(得分:3)

更改

authenticator: AllowAllAuthenticator 

authenticator: PasswordAuthenticator 
cassandra.yaml配置文件中

并重新启动Cassandra。

这将通过重新启动为您创建超级用户cassandra。确保安装了Phthon27,thrift-0.91,Cassandra(datastax community edition 2.0.9)等。现在,当您登录cassandra时,它将允许您以超级用户身份进入。您现在可以创建新的超级用户并更改现有超级用户的密码。

python cqlsh localhost -u cassandra -p cassandra 
Connected to Test Cluster at localhost:9160. 
[cqlsh 4.1.1 | Cassandra 2.0.9 | CQL spec 3.1.1 | Thrift protocol 19.39.0]

使用HELP寻求帮助。

cqlsh> create user abc with password 'xyz' superuser; 
cqlsh> alter user cassandra with password 'gaurav'; 
cqlsh> exit