Cassandra用户管理

简介: Cassandra用role代替用户和用户组,默认创建的role没有login和super权限;但是默认创建的user是有login的权限(1)角色#创建角色cassandra@cqlsh:keyspace1> create role cdhu1;cassandr...

Cassandra用role代替用户和用户组,默认创建的role没有login和super权限;

但是默认创建的user是有login的权限


(1)角色

#创建角色

cassandra@cqlsh:keyspace1> create role cdhu1;

cassandra@cqlsh:keyspace1> create role cdhu2 with password='147258' and login=true;

cassandra@cqlsh:keyspace1> create role cdhu3 with password='147258' and login=true and superuser=true;


#查看角色

cassandra@cqlsh:keyspace1> list roles;

role      | super | login | options

-----------+-------+-------+---------

cassandra |  True |  True |        {}

     cdhu1 | False | False |        {}

     cdhu2 | False |  True |        {}

     cdhu3 |  True |  True |        {}


cassandra@cqlsh:keyspace1> list roles of cdhu3;

role  | super | login | options

-------+-------+-------+---------

cdhu3 |  True |  True |        {}


#修改角色cdhu3的属性

cassandra@cqlsh:keyspace1> ALTER ROLE cdhu3 WITH PASSWORD = '147258' AND SUPERUSER = false;


#把角色cdhu3的权限赋予传递给角色cdhu2:

cassandra@cqlsh:keyspace1> grant cdhu3 to cdhu2;

cassandra@cqlsh:keyspace1> revoke cdhu3 from cdhu2;



(2)用户

cassandra@cqlsh:keyspace1> create user user1 with password '147258' superuser;

cassandra@cqlsh:keyspace1> create user user2 with password '147258' nosuperuser;

cassandra@cqlsh:keyspace1> list users;

name      | super

-----------+-------

cassandra |  True

     user1 |  True

     user2 | False


(3)权限

CREATE

ALTER

DROP

SELECT

MODIFY

AUTHORIZE

DESCRIBE

EXECUTE


#grant&revoke

cassandra@cqlsh:keyspace1> grant select on keyspace1.t1 to cdhu2;

cassandra@cqlsh:keyspace1> grant modify on keyspace keyspace1 to cdhu2;

cassandra@cqlsh:keyspace1> revoke select on kyepsace1.t1 from cdhu2


#查看角色或用户的权限

cassandra@cqlsh:keyspace1> list all permissions;

cassandra@cqlsh:keyspace1> list all permissions of cdhu2;

role  | username | resource             | permission

-------+----------+----------------------+------------

cdhu2 |    cdhu2 | <keyspace keyspace1> |     MODIFY

cdhu2 |    cdhu2 | <table keyspace1.t1> |     SELECT


cassandra@cqlsh:keyspace1> list all permissions on keyspace1.t1 of cdhu2;

role  | username | resource             | permission

-------+----------+----------------------+------------

cdhu2 |    cdhu2 | <keyspace keyspace1> |     MODIFY

cdhu2 |    cdhu2 | <table keyspace1.t1> |     SELECT




(4)登录设置

#修改配置文件

$ vim /usr/local/cassandra/conf /cassandra.yaml

authenticator: PasswordAuthenticator

authorizer: CassandraAuthorizer


#重启数据库会自动创建system_auto,并且生成三个表credentials,users,permissions

#停止cassandra服务

[tnuser@sht-sgmhadoopdn-02 bin]$ nodetool stopdaemon

Cassandra has shutdown.

error: Connection refused (Connection refused)

-- StackTrace --


[tnuser@sht-sgmhadoopdn-02 bin]$cassandra


#再次访问,没有用户和密码会报错:

[tnuser@sht-sgmhadoopdn-02 bin]$ cqlsh

Connection error: ('Unable to connect to any servers', {'127.0.0.1': AuthenticationFailed('Remote end requires authentication.',)})


#使用cassandra默认的用户名和密码cassandra/cassandra:

[tnuser@sht-sgmhadoopdn-02 bin]$ cqlsh -ucassandra -pcassandra

Connected to mycluster at 127.0.0.1:9042.

[cqlsh 5.0.1 | Cassandra 2.1.18 | CQL spec 3.2.1 | Native protocol v3]

Use HELP for help.


#修改密码

cassandra@cqlsh> alter user cassandra with password '147258';

cassandra@cqlsh> quit


cassandra@cqlsh:system_auth> desc tables;

credentials  users  permissions



cassandra@cqlsh:system_auth> select * from credentials;

username  | options | salted_hash

-----------+---------+--------------------------------------------------------------

cassandra |    null | $2a$10$SqGQtA8PLhBwoWLBBDQgN.oAiQGD3MrnU0Jeln7QZRJj8g1jIJ3n6


cassandra@cqlsh:system_auth> select * from users ;

name      | super

-----------+-------

cassandra |  True



#配置无密码登录Cassandra:

[tnuser@sht-sgmhadoopdn-02 ~]$ vim ~/.cassandra/sqlshrc

[authentication]

username = cassandra

password = 147258


cassandra@cqlsh> list users;

name      | super

-----------+-------

cassandra |  True

目录
相关文章
|
5月前
|
安全 NoSQL MongoDB
20 MongoDB高级 - 用户管理安全
20 MongoDB高级 - 用户管理安全
47 1
|
8月前
|
关系型数据库 MySQL 数据库
mysql数据库用户管理和权限控制
mysql数据库用户管理和权限控制
66 0
|
9月前
|
NoSQL MongoDB 数据库
mongodb用户权限管理
用户权限管理简要说明
610 0
|
10月前
|
SQL 存储 安全
数据库权限管理概述
数据库权限管理概述
206 0
|
存储 NoSQL 安全
MongoDB分布式存储数据库系列(三)------用户与权限管理
Mongodb 作为时下最为热门的数据库,那么其安全验证也是必不可少的
66 0
|
关系型数据库 MySQL 数据库
Mysql数据库用户管理
1.Mysql登录 当 MySQL 服务已经运行时, 我们可以通过 MySQL 自带的客户端工具登录到 MySQL 数据库中, 首先打开命令提示符, 输入以下格式的命名:
102 0
|
关系型数据库 MySQL 数据库
MySQL数据库之用户管理(上)
一、数据库用户管理 1.1 新建用户
158 0
|
关系型数据库 MySQL 网络安全
MySQL数据库之用户管理(下)
一、数据库用户管理 1.1 新建用户
103 0
|
NoSQL MongoDB 数据库
MongoDB 用户角色管理
MongoDB 服务默认是没有账号密码的,客户端连接上即可进行各种操作。如果在配置文件中,指定了auth=true,即开启了认证,那么客户端连接后需要认证才能执行操作。
MongoDB 用户角色管理

热门文章

最新文章