Trước Cassandra 2.2, nó chỉ hỗ trợ xác thực cơ sở người dùng, nhưng bây giờ Cassandra giới thiệu xác thực dựa trên vai trò mới.
Trong bài đăng này, tôi đang chia sẻ phần trình bày về cách tạo Vai trò trong Cassandra và Cách chỉ định các quyền khác nhau cho vai trò đó.
Bạn có thể trực tiếp sử dụng Vai trò này để xác thực và bạn cũng có thể chỉ định quyền đối với Vai trò tương tự cho một vai trò khác.
Đầu tiên, đăng nhập bằng siêu người dùng của Cassandra.
1 | cqlsh -u cassanddra -p cassandra |
Tạo Keyspace nếu không tồn tại:
1 2 3 | CREATE KEYSPACE IF NOT EXISTS dbrnd WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3}; USE dbrnd; |
Tạo một vài bảng mẫu:
1 2 3 4 5 6 7 8 9 10 11 12 13 | CREATE TABLE IF NOT EXISTS tbl_Employee ( EmpID INT PRIMARY KEY ,EmpFirstName VARCHAR ,EmpLastName VARCHAR ,EmpSalary INT ); CREATE TABLE IF NOT EXISTS tbl_Department ( DeptID INT PRIMARY KEY ,DeptName VARCHAR ); |
Tạo một vai trò mẫu mà không cần quyền truy cập Superuser:
Nếu bạn gặp lỗi này : “Tổ chức.apache.cassandra.auth.CassandraRoleManager không hỗ trợ MẬT KHẨU ”, hãy truy cập giải pháp này.
1 | CREATE ROLE ReportingRole WITH PASSWORD = 'pass123' AND LOGIN = true AND SUPERUSER = false; |
Cấp các quyền khác nhau cho Vai trò này:
1 2 | GRANT SELECT ON dbrnd.tbl_Employee TO ReportingRole; GRANT MODIFY ON dbrnd.tbl_Department TO ReportingRole; |
Nếu bạn gặp bất kỳ lỗi nào như "Thao tác GRANT không được AllowAllAuthorizer hỗ trợ", bạn phải sửa đổi giá trị của "người ủy quyền" trong cassandra.tệp yaml.
1 2 3 4 5 | -- Old value: authorizer: AllowAllAuthorizer -- Change to this New value: authorizer: org.apache.cassandra.auth.CassandraAuthorizer |
Cấp quyền cho tất cả các không gian phím:
1 2 | GRANT SELECT ON ALL KEYSPACES TO ReportingRole; GRANT MODIFY ON ALL KEYSPACES TO ReportingRole; |
Tạo Vai trò thử nghiệm mới và biến nó thành bản sao của vai trò hiện tại:
1 2 3 | CREATE ROLE Test WITH PASSWORD = 'pass123' AND LOGIN = true AND SUPERUSER = false; GRANT ReportingRole to Test; |
Liệt kê tất cả các Vai trò và quyền của nó:
1 2 3 4 | -- List out all Roles. LIST ROLES; -- List out all permissions of the Role. LIST ALL PERMISSIONS OF ReportingRole; |