OrientDB - Bảo mật
Giống như RDBMS, OrientDB cũng cung cấp bảo mật dựa trên các khái niệm, người dùng và vai trò nổi tiếng. Mỗi cơ sở dữ liệu có người dùng riêng và mỗi người dùng có một hoặc nhiều vai trò. Vai trò là sự kết hợp của các chế độ làm việc và tập hợp các quyền.
Người dùng
Theo mặc định, OrientDB duy trì ba người dùng khác nhau cho tất cả cơ sở dữ liệu trong máy chủ -
Admin - Người dùng này có quyền truy cập vào tất cả các chức năng trên cơ sở dữ liệu mà không bị giới hạn.
Reader- Người dùng này là người dùng chỉ đọc. Người đọc có thể truy vấn bất kỳ bản ghi nào trong cơ sở dữ liệu, nhưng không thể sửa đổi hoặc xóa chúng. Nó không có quyền truy cập vào thông tin nội bộ, chẳng hạn như người dùng và vai trò của chính họ.
Writer - Người dùng này giống như trình đọc người dùng, nhưng nó cũng có thể tạo, cập nhật và xóa bản ghi.
Làm việc với người dùng
Khi bạn được kết nối với cơ sở dữ liệu, bạn có thể truy vấn người dùng hiện tại trên cơ sở dữ liệu bằng cách sử dụng SELECT truy vấn trên OUser lớp học.
orientdb> SELECT RID, name, status FROM OUser
Nếu truy vấn trên được thực thi thành công, bạn sẽ nhận được kết quả sau.
---+--------+--------+--------
# | @CLASS | name | status
---+--------+--------+--------
0 | null | admin | ACTIVE
1 | null | reader | ACTIVE
2 | null | writer | ACTIVE
---+--------+--------+--------
3 item(s) found. Query executed in 0.005 sec(s).
Tạo người dùng mới
Để tạo người dùng mới, hãy sử dụng lệnh INSERT. Hãy nhớ rằng, khi làm như vậy, bạn phải đặt trạng thái thành ACTIVE và cung cấp cho nó một vai trò hợp lệ.
orientdb> INSERT INTO OUser SET
name = 'jay',
password = 'JaY',
status = 'ACTIVE',
roles = (SELECT FROM ORole WHERE name = 'reader')
Cập nhật người dùng
Bạn có thể thay đổi tên cho người dùng bằng câu lệnh UPDATE.
orientdb> UPDATE OUser SET name = 'jay' WHERE name = 'reader'
Theo cách tương tự, bạn cũng có thể thay đổi mật khẩu cho người dùng.
orientdb> UPDATE OUser SET password = 'hello' WHERE name = 'reader'
OrientDB lưu mật khẩu ở định dạng băm. Trình kích hoạtOUserTrigger mã hóa mật khẩu một cách minh bạch trước khi lưu bản ghi.
Vô hiệu hóa người dùng
Để vô hiệu hóa người dùng, hãy sử dụng CẬP NHẬT để chuyển trạng thái của người dùng đó từ HOẠT ĐỘNG sang TẠM NGỪNG. Ví dụ: nếu bạn muốn tắt tất cả người dùng ngoại trừ quản trị viên, hãy sử dụng lệnh sau:
orientdb> UPDATE OUser SET status = 'SUSPENDED' WHERE name <> 'admin'
Vai trò
Một vai trò xác định những thao tác mà người dùng có thể thực hiện đối với tài nguyên. Chủ yếu, quyết định này phụ thuộc vào chế độ làm việc và các quy tắc. Bản thân các quy tắc hoạt động khác nhau, tùy thuộc vào chế độ làm việc.
Làm việc với vai trò
Khi bạn được kết nối với cơ sở dữ liệu, bạn có thể truy vấn các vai trò hiện tại trên cơ sở dữ liệu bằng cách sử dụng SELECT truy vấn trên ORole lớp học.
orientdb> SELECT RID, mode, name, rules FROM ORole
Nếu truy vấn trên được thực thi thành công, bạn sẽ nhận được kết quả sau.
--+------+----+--------+-------------------------------------------------------
# |@CLASS|mode| name | rules
--+------+----+--------+-------------------------------------------------------
0 | null | 1 | admin | {database.bypassRestricted = 15}
1 | null | 0 | reader | {database.cluster.internal = 2, database.cluster.orole = 0...
2 | null | 0 | writer | {database.cluster.internal = 2, database.cluster.orole = 0...
--+------+----+--------+-------------------------------------------------------
3 item(s) found. Query executed in 0.002 sec(s).
Tạo vai trò mới
Để tạo một vai trò mới, hãy sử dụng câu lệnh INSERT.
orientdb> INSERT INTO ORole SET name = 'developer', mode = 0
Làm việc với các chế độ
Trong đó các quy tắc xác định những gì người dùng thuộc các vai trò nhất định có thể làm trên cơ sở dữ liệu, các chế độ làm việc xác định cách OrientDB diễn giải các quy tắc này. Có hai loại chế độ làm việc, được chỉ định bằng 1 và 0.
Allow All But (Rules)- Theo mặc định, nó là chế độ siêu người dùng. Chỉ định các ngoại lệ cho điều này bằng cách sử dụng các quy tắc. Nếu OrientDB không tìm thấy quy tắc nào cho tài nguyên được yêu cầu, thì nó sẽ cho phép người dùng thực thi hoạt động. Sử dụng chế độ này chủ yếu cho người dùng thành thạo và quản trị viên. Quản trị viên vai trò mặc định sử dụng chế độ này theo mặc định và không có quy tắc ngoại lệ. Nó được viết là 1 trong cơ sở dữ liệu.
Deny All But (Rules)- Theo mặc định, chế độ này không cho phép gì cả. Chỉ định các ngoại lệ cho điều này bằng cách sử dụng các quy tắc. Nếu OrientDB tìm thấy các quy tắc cho một tài nguyên được yêu cầu, thì nó sẽ cho phép người dùng thực thi hoạt động. Sử dụng chế độ này làm mặc định cho tất cả người dùng cổ điển. Các vai trò mặc định, người đọc và người viết, sử dụng chế độ này. Nó được viết là 0 trong cơ sở dữ liệu.