如何在cassandra数据库中创建第一个用户?
我试过了:
CREATE USER username WITH PASSWORD "";
并且它说:
Bad Request: Only superusers are allowed to perform CREATE USER queries
但是我在尝试之前从未创建过用户,那么如何在cassandra数据库中创建第一个用户呢?
这看起来有点奇怪,因为它就像鸡和蛋的问题,但人们使用Cassandra,所以我相信某处必须有解决方案。
答案 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发表评论)
首先,是否正在更改设置身份验证所需的授权?我猜不是。
其次,如果您具有数据中心样式复制设置,则设置授权并非完全无关紧要。我使用以下步骤设置授权:
这对那些知道自己在做什么的人来说听起来是否合理?
答案 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