update system_auth.credentials set salted_hash='$2a$10$vbfmLdkQdUz3Rmw.fF7Ygu6GuphqHndpJKTvElqAciUJ4SZ3pwquu' where username='cassandra';个 1.出口cqlsh 1.将authenticator更改回PasswordAuthenticator并重新启动Cassandra 现在您可以使用
public void validateLogin() throws UnauthorizedException
{
// if (user == null)
// throw new UnauthorizedException("You have not logged in");
}
public void ensureNotAnonymous() throws UnauthorizedException
{
validateLogin();
// if (user.isAnonymous())
// throw new UnauthorizedException("You have to be logged in and not anonymous to perform this request");
}
4条答案
按热度按时间mzaanser1#
Cassandra 2.1的哈希值已更改:
1.切换到验证器:AllowAllAuthenticator
1.重启cassandra
1.第一个月
1.切换回验证器:密码验证器
1.重启cassandra
1.以cassandra/cassandra身份登录
1.创建用户和更改用户到您的心脏的内容。
ecbunoof2#
通过以下步骤解决:
1.将
cassandra.yaml
中的authenticator更改为AllowAllAuthenticator并重新启动Cassandracqlsh
个update system_auth.credentials set salted_hash='$2a$10$vbfmLdkQdUz3Rmw.fF7Ygu6GuphqHndpJKTvElqAciUJ4SZ3pwquu' where username='cassandra';
个1.出口
cqlsh
1.将authenticator更改回PasswordAuthenticator并重新启动Cassandra
现在您可以使用
字符串
把密码改成别的
t30tvxxf3#
关于Cassandra 2.0
字符串
如果您想添加用户。
型
使用
LIST USERS;
验证现有用户编辑
哦,天哪,这会很有趣的!所以,我找到了一个黑客的方法,但它需要改变源代码。
首先是一个高层次的概述:
1.编辑source,以便可以对system_auth.credentials列族进行更改
1.将验证器更改为AllowAllAuthenticator
1.开始C*
1.使用cqlsh登录,无需密码
1.更新cassandra用户的哈希密码
1.撤消源更改并更改回PasswordAuthenticator。
第一步-编辑源代码
打开C* 源代码,转到
org.apache.cassandra.service.ClientState
包;找到validateLogin()
和ensureNotAnonymous()
函数,并注解掉所有包含的coude,这样你就得到了:型
步骤2-在cassandra.yaml中更改为AllowAllAuthenticator步骤3和4-简单!第五步-从cqlsh执行insert语句:
型
注意 * 假设已经创建了名为“cassandra”的用户,则第5步将正常工作。如果您创建了另一个用户,只需切换您正在插入的用户名(此过程重置密码,不会添加新用户)。
第6步通过取消注解
validateLogin()
和ensureNotAnonymous()
修复源代码,并切换回cassandra.yaml中的PasswordAuthenticator,您现在应该可以通过./cqlsh -u cassandra -p cassandra访问cqlsho4tp2gmn4#
更新Cassandra 4:
1.按照其他答案中的描述更改cassandra.yaml:
注解掉以下行
字符串
并取消注解
型
1.使用cqlsh登录。
1.表名和列已更改。查询现在变为
第一个月