如何在Cassandra DB中创建第一个用户
如何在cassandra数据库中创建第一个用户 我试过:如何在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,所以我相信一定有解决方案。要开始使用身份验证,默
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