Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Cassandra DB中创建第一个用户_Cassandra_Cql_Cqlsh - Fatal编程技术网

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

如何在Cassandra DB中创建第一个用户,cassandra,cql,cqlsh,Cassandra,Cql,Cqlsh,如何在cassandra数据库中创建第一个用户 我试过: CREATE USER username WITH PASSWORD ""; 它说: Bad Request: Only superusers are allowed to perform CREATE USER queries 但是在这次尝试之前我从未创建过用户,那么如何在cassandra数据库中创建第一个用户呢 这似乎有点奇怪,因为这就像鸡和蛋的问题,但人们使用Cassandra,所以我相信一定有解决方案。要开始使用身份验证,默

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

我试过:

CREATE USER username WITH PASSWORD "";
它说:

Bad Request: Only superusers are allowed to perform CREATE USER queries
但是在这次尝试之前我从未创建过用户,那么如何在cassandra数据库中创建第一个用户呢


这似乎有点奇怪,因为这就像鸡和蛋的问题,但人们使用Cassandra,所以我相信一定有解决方案。

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

资料来源:

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

./cqlsh localhost -u cassandra -p cassandra
如果您在Windows服务器上运行Cassandra,我相信:

一旦进入,您的第一项任务应该是创建另一个超级用户帐户

CREATE USER dba WITH PASSWORD 'bacon' SUPERUSER;
接下来,将当前Cassandra超级用户的密码设置为其他密码是一个非常好的主意…最好是设置为长且不可理解的密码。对于新的超级用户,您不应该再次需要默认的Cassandra帐户

ALTER USER cassandra WITH PASSWORD 'dfsso67347mething54747long67a7ndincom4574prehensi562ble';

有关更多信息,请参阅这篇DataStax文章:

Re:一旦您启用了身份验证和授权(摘自BryceAtNetwork23于3月6日14:41发表的评论)

首先,设置身份验证是否需要更改授权?我猜不是

其次,如果您有数据中心风格的复制设置,那么设置授权并不是一件小事。我使用以下步骤设置授权:

  • 在conf/cassandra.yaml中,将所有节点的验证器从AllowAllAuthenticator更改为PasswordAuthenticator
  • 重新启动所有节点
  • 如上所述更改了默认的“cassandra”密码,并添加了其他超级用户
  • 通过运行:“ALTER keyspace system_auth WITH REPLICATION={'class':'NetworkTopologyStrategy','MY_DATACENTER_NAME':N}”,将system_auth keyspace更改为冗余(根据cassandra.yaml文件中的说明)
  • 我将N设置为数据中心中的节点数(即,完全冗余)
  • 在每个节点上连续运行bin/nodetool修复
对于知道自己在做什么的人来说,这听起来合理吗?

改变

authenticator: AllowAllAuthenticator 

cassandra.yaml
配置文件中,重新启动cassandra

这将通过重启为您创建一个超级用户cassandra。确保安装了Phthon27、thrift-0.91、Cassandra(datastax社区版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]
用帮助换取帮助

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

当然可以,但我如何以任何用户的身份登录?您使用命令行参数来启动cqlsh的python调用,如下所示:“C:\Program Files\DataStax Community\python\python.exe”“C:\Program Files\DataStax Community\apache cassandra\bin\cqlsh”localhost-u cassandra-p cassandrawhy localhost参数是登录所必需的吗?我以前从来没有把它放进去过事实上,它不是。我只是把它包括在内,以防您想连接到远程Cassandra服务器,然后您就知道在哪里指定它了。但是执行
/cqlsh-u cassandra-p cassandra
应该可以正常工作。当您说启用身份验证和授权时,您明确的意思是什么?当前我所做的是更改验证器:PasswordAuthenticator和authrizer:AllowAllAuthorizer?@Pinocchio“当前我所做的是更改验证器:PasswordAuthenticator和authrizer:AllowAllAuthorizer?”…是的,这就是我的意思。Microsoft Azure实例不允许使用cassandra/cassandra登录。。。我需要编辑yaml文件并重新设置密码。如果你把这一大段拆分一下,这个答案会更容易阅读。此外,在发布之前,请检查答案的呈现输出。输入文本中的一个换行符不在输出中(在前一行中添加两个空格或在它们之间添加一个空行)。谢谢您的回答提醒我重新启动cassandra:p
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]
cqlsh> create user abc with password 'xyz' superuser; 
cqlsh> alter user cassandra with password 'gaurav'; 
cqlsh> exit