Cassandra 3.11.13创建角色报错:CassandraRoleManager不支持PASSWORD
解决Cassandra 3.11.13创建带密码角色报错的问题
问题根源
Cassandra默认的CassandraRoleManager组件不支持设置密码,要实现密码认证,必须切换到支持密码的认证和角色管理配置。
具体解决步骤
- 修改Cassandra的配置文件
cassandra.yaml
找到以下两个配置项,替换成指定值:# 替换默认的AllowAllAuthenticator authenticator: PasswordAuthenticator # 替换默认的CassandraRoleManager role_manager: PasswordRoleManager - 重启Cassandra服务
所有节点修改完配置后,重启Cassandra(比如Linux系统执行sudo systemctl restart cassandra,Windows则重启对应的服务) - 重新创建角色/用户
用cqlsh以默认超级用户cassandra(密码也是cassandra)登录,执行创建命令:
或者用CREATE ROLE etl WITH PASSWORD = 'xxxxxx' AND LOGIN = true;CREATE USER(3.11版本里它是CREATE ROLE的别名,功能完全一致):CREATE USER etl WITH PASSWORD 'xxxxxx' LOGIN; - 可选:给角色分配权限
如果需要让新角色操作指定keyspace,执行类似命令:GRANT ALL ON KEYSPACE 你的keyspace名称 TO etl;
注意点
- 集群所有节点必须同步修改配置,否则节点会无法正常加入集群
- 切换认证方式后,记得及时修改默认的
cassandra用户密码,避免安全隐患:ALTER ROLE cassandra WITH PASSWORD '新的安全密码';
内容的提问来源于stack exchange,提问作者Nguyễn Sỹ Tuấn
相关产品推荐
相关产品推荐

