Tải bản đầy đủ (.docx) (32 trang)

các cơ chế an toàn của OrientDB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.3 MB, 32 trang )

Đề tài:

HỆ QUẢN TRỊ CSDL NOSQL VÀ
CÁC CƠ CHẾ BẢO MẬT CỦA ORIENTDB

Hà Nội, 10-2021


LỜI MỞ ĐẦU
Hệ quản trị cơ sở dữ liệu (Database Managemen System – DBMS), là phần mềm
hay hệ thống được thiết kế để quản trị một cơ sở dữ liệu. Cụ thể, các chương trình này có
khả năng lưu trữ, sửa chữa, xóa và tìm kiếm thơng tin trong một cơ sở dữ liệu – CSDL.
Có rất nhiều loại cơ sở dữ liệu khác nhau. Tuy nhiên ngày nay, các cơ sở dữ liệu trên thị
trường đều có điểm chung là sử dụng ngôn ngữ truy vấn theo cấu trúc Structured Query
Language (SQL). Các hệ quản trị CSDL phổ biết được nhiều người biết đến là MySQL,
Oracle, DB2, SQL server, v.v. Phần lớn chúng chạy trên đa nền tảng như Linux, Unix,
MacOS, ….
Các ưu điểm của các hệ quản trị CSDL sử dụng ngôn ngữ SQL là không thể bàn
cãi. Ví dụ như tiêu chuẩn được quy định rõ rang, tính di động cao khi sử dung được ở
nhiều loại thiết bị, ngơn ngữ tương tác có thể sử dụng để giao tiếp với cơ sở dữ liệu và
nhận câu trả lời cho các câu hỏi phức tạp trong vài giây hay tạo các khung nhìn (views)
khác nhau về cấu trúc cơ sở dữ liệu và cơ sở dữ liệu cho những người dùng khác nhau.
Tuy nhiên nó vẫn có những nhược điểm như khó để mở rơng theo chiều ngang nếu đã tồn
tại dữ liệu trong database, đòi hỏi phần cứng cao hay hiêu xuất chậm vì phải tính toán
kiểm tra và xử lý các mối quan hệ giữa các bảng v.v. Từ đó các hệ quản trị CSDL NoSQL
được ra đời để khắc phục những nhược điểm này.
Trong bài báo cáo này, nội dung chính được đề cập đến sẽ là những thông tin sơ
lược liên quan đến các hệ quản trị CSDL NoSQL. Đặc biệt được đề cập đến ở dây là hệ
quản trị CSDL OrientDB. Các đặc điểm chính, các phương pháp để bảo mật hệ quản trị
CSDL này.



MỤC LỤC

DANH MỤC HÌNH ẢNH


CHƯƠNG 1. TỔNG QUAN VỀ NOSQL
1.1 Cơ sở dữ liệu NoSQL là gì?
Cơ sở dữ liệu NoSQL là một Hệ thống quản lý dữ liệu không quan hệ (nonrelational Data Management System) có lược đồ (schema) linh hoạt. Nó dễ mở rộng. Mục
đích chính của việc sử dụng cơ sở dữ liệu NoSQL là dành cho các kho dữ liệu phân tán
với nhu cầu lưu trữ dữ liệu lớn. NoSQL được sử dụng cho Dữ liệu lớn và ứng dụng web
thời gian thực. Chẳng hạn các công ty như Twitter, Facebook và Google thu thập hàng
terabyte dữ liệu người dùng mỗi ngày.
Cơ sở dữ liệu NoSQL là viết tắt của “Not Only SQL” hoặc “Not SQL”. Với cơ sở
dữ liệu quan hệ RDBMS ta sử dụng cú pháp SQL để lưu trữ và truy xuất dữ liệu. Đối với
hệ thống cơ sở dữ liệu NoSQL, nó bao gồm một loạt các cơng nghệ cơ sở dữ liệu có thể
lưu trữ dữ liệu có cấu trúc, bán cấu trúc, phi cấu trúc và đa hình. Sơ đồ sau cho thấy
CSDL NoSQL khác so với CSDL SQL

Hình 1.1: Sự khác nhau giữa SQL DB và NOSQL DB


1.2 Sự khác nhau giữa Cơ sở dữ liệu SQL và NoSQL:

Hình 1.2: Sự khác nhau giữa SQL DB và NOSQL DB(2)

1.3 Lý do nên sử dụng CSDL NoSQL
Như đã nói ở phần 1.1.1 Cơ sở dữ liệu NoSQL là lựa chọn cực kỳ thích hợp cho
nhiều ứng dụng hiện đại, ví dụ như di động, web và trị chơi đòi hỏi phải sử dụng cơ sở
dữ liệu cực kỳ thiết thực, linh hoạt, có khả năng thay đổi quy mô và hiệu năng cao để

đem đến cho người dùng trải nghiệm tuyệt vời.
• Linh hoạt: Cơ sở dữ liệu NoSQL thường cung cấp các sơ đồ linh hoạt giúp
công đoạn phát triển nhanh hơn và có khả năng lặp lại cao hơn. Mơ hình dữ
liệu linh hoạt biến cơ sở dữ liệu NoSQL thành lựa chọn lý tưởng cho dữ
liệu khơng được tổ chức thành cấu trúc hoặc có cấu trúc chưa hồn chỉnh.
• Khả năng thay đổi quy mô: Cơ sở dữ liệu NoSQL thường được thiết kế để
tăng quy mô bằng cách sử dụng các cụm phần cứng được phân phối thay vì
tăng quy mơ bằng cách bổ sung máy chủ mạnh và tốn kém. Một số nhà
cung cấp dịch vụ đám mây xử lý các hoạt động này một cách không công
khai dưới dạng dịch vụ được quản lý đầy đủ.
• Hiệu năng cao: Cơ sở dữ liệu NoSQL được tối ưu hóa theo các mơ hình dữ
liệu cụ thể và các mẫu truy cập giúp tăng hiệu năng cao hơn so với việc cố
gắng đạt được mức độ chức năng tương tự bằng cơ sở dữ liệu quan hệ.
• Cực kỳ thiết thực: Cơ sở dữ liệu NoSQL cung cấp các API và kiểu dữ liệu
cực kỳ thiết thực được xây dựng riêng cho từng mơ hình dữ liệu tương ứng.


1.4 Các loại CSDL NoSQL
1.4.1 Key Value Pair Based NoSQL database
Với Key Value Pair Based, Dữ liệu được lưu trữ trong các cặp khóa / giá trị
(Key/Value Pair). Nó được thiết kế theo cách để xử lý nhiều dữ liệu và tải nặng. Cơ sở dữ
liệu lưu trữ cặp khóa-giá trị lưu trữ dữ liệu dưới dạng bảng băm trong đó mỗi khóa là duy
nhất và giá trị có thể là JSON, BLOB (Binary Large Objects), chuỗi, v.v. Ví dụ: một cặp
khóa-giá trị có thể chứa một khóa như “Trang web” được liên kết với một giá trị như
“Itguru”. Đây là một trong những ví dụ cơ sở dữ liệu NoSQL cơ bản nhất. Loại cơ sở dữ
liệu NoSQL này được sử dụng như một bộ sưu tập, từ điển, mảng kết hợp, v.v. Key value
stores giúp developer lưu trữ dữ liệu khơng có schema.

Hình 1.3: Cấu trúc Key-Value DB


1.4.2 Column-based NoSQL database
Với Column based database, dữ liệu được lưu trữ trong database dưới dạng các
cột. Mỗi cột được xử lý riêng biệt. Giá trị của cơ sở dữ liệu cột đơn được lưu trữ liền kề.
Chúng mang lại hiệu suất cao cho các truy vấn tổng hợp như SUM, COUNT, AVG, MIN,
v.v. vì dữ liệu có sẵn trong một cột. Cơ sở dữ liệu NoSQL dựa trên cột được sử dụng rộng
rãi để quản lý data warehouses, business intelligence, CRM, Library card catalogs…


Hình 1.4: Cấu trúc Column-based

1.4.3 Document-Oriented NoSQL
NoSQL Document Database lưu trữ và truy xuất dữ liệu dưới dạng một cặp giá trị
khóa (key value pair )nhưng phần giá trị được lưu trữ dưới dạng tài liệu. Tài liệu được
lưu trữ ở định dạng JSON hoặc XML. Giá trị được hiểu bởi Online Transaction
Processing DB và có thể được truy vấn

Hình 1.5: Cấu trúc Document DB

1.4.4 Graph-Based NoSQL database
Cơ sở dữ liệu kiểu đồ thị (Graph Based) lưu trữ các thực thể cũng như các mối
quan hệ giữa các thực thể đó. Thực thể được lưu trữ dưới dạng một node với mối quan hệ
là các cạnh. Một cạnh cho biết mối quan hệ giữa các node. Mỗi node và cạnh có một mã
định danh duy nhất. So với cơ sở dữ liệu quan hệ trong đó các bảng được kết nối với
nhau một cách lỏng lẻo, cơ sở dữ liệu Đồ thị có bản chất là đa quan hệ. Mối quan hệ
truyền tải nhanh chóng vì chúng đã được ghi lại vào DB và khơng cần phải tính tốn
chúng. Cơ sở dữ liệu đồ thị chủ yếu được sử dụng cho mạng xã hội, hậu cần, dữ liệu
không gian.


Hình 1.6: Cấu trúc GraphDB



CHƯƠNG 2. OrientDB
2.1 Giới thiệu
OrientDB là DBMS mã nguồn mở NoSQL đa mơ hình đầu tiên kết hợp sức mạnh
của đồ thị (graph) và tính linh hoạt của tài liệu (document) thành một cơ sở dữ liệu hoạt
động hiệu suất cao, có thể mở rộng.
Đã qua rồi cái thời mà cơ sở dữ liệu của bạn chỉ hỗ trợ một mơ hình dữ liệu duy
nhất. Như một phản ứng trực tiếp đối với sự tồn tại của đa ô, cơ sở dữ liệu đa mơ hình
thừa nhận sự cần thiết của nhiều mơ hình dữ liệu, kết hợp chúng để giảm độ phức tạp
trong hoạt động và duy trì tính nhất quán của dữ liệu. Mặc dù cơ sở dữ liệu đồ thị đã trở
nên phổ biến, hầu hết các sản phẩm NoSQL vẫn được sử dụng để cung cấp khả năng mở
rộng cho các ứng dụng trên DBMS quan hệ. Các sản phẩm NoSQL thế hệ thứ 2 tiên tiến
như OrientDB là tương lai: cung cấp nhiều chức năng và tính linh hoạt hơn, đồng thời đủ
mạnh để thay thế DBMS đang hoạt động của bạn.

2.2 Data Modeling
Công cụ OrientDB hỗ trợ các mơ hình Đồ thị, Tài liệu, Khóa / Giá trị và Đối
tượng, vì vậy doanh nghiệp có thể sử dụng OrientDB thay thế cho một sản phẩm thuộc
bất kỳ danh mục nào trong số này. Tuy nhiên, lý do chính khiến người dùng chọn
OrientDB là vì khả năng DBMS Đa mơ hình thực sự của nó, kết hợp tất cả các tính năng
của bốn mơ hình thành cốt lõi. Những khả năng này không chỉ là giao diện với cơng cụ
cơ sở dữ liệu, mà cịn là bản thân công cụ được xây dựng để hỗ trợ cả bốn mơ hình.

2.3 Đặc điểm
CĨ LỢI TỐC ĐỘ
OrientDB được thiết kế ngay từ đầu với hiệu suất chính là đặc điểm kỹ thuật quan
trọng. nó nhanh trên cả thao tác đọc và ghi cới tốc độ lưu trữ lên đến 120.000 bản ghi mỗi
giây.
• Đặc biệt ở đây khơng cịn câu lệnh JOIN như các DBMS sử dụng SQL.

• Các Relationships là các liên kết vật lý đến các bản ghi.
• Duyệt qua các phần, hoặc tồn bộ của cây và biểu đồ của bản ghi trong mili
giây.
• Tốc độ duyệt khơng bị ảnh hưởng bởi kích thước CSDL.


CÓ LỢI CHO DOANH NGHIỆP
Trong khi hầu hết các DBMS NoSQL được sử dụng làm CSDL thứ cấp thì
OrientDB đủ mạnh và linh hoạt để được sử dụng như một DBMS chính trong doanh
nghiệp. Tuy phiên bảm Community Edition miễn phí cho mục đích thương mại nhưng
các ứng dụng mạnh mẽ cần có các chức năng cấp enterprise để đảm bảo an ninh dữ liệu
và hiệu suất hồn hảo. Chính vì vậy OrientDB Enterprise Edition cung cấp tất cả các tính
năng của phiên bản cộng đồng kèm theo:







Khả năng sao lưu tăng dần
Hỗ trợ 24/7
Hồ sơ truy vấn
Cấu hình phân cụm phân tán
Ghi lại số liệu
Giám sát trực tiếp

KIẾN TRÚC ĐA TỔNG THỂ
Kiến trúc master-slave, master thường trở thành nút cổ chai. Với OrientDB, thông
lượng không bị giới hạn bởi một máy chủ duy nhất. Thơng lượng tồn cầu là tổng thông

lượng của tất cả các máy chủ.
Với kiến trúc đa tổng thể khơng cấu hình, OrientDB hồn hảo cho Đám mây. Hàng
trăm máy chủ có thể chia sẻ khối lượng công việc, mở rộng theo chiều ngang trên các
trung tâm dữ liệu hiện đại phân tán.
TÍNH LINH HOẠT
Việc thay thế DBMS của doanh nghiệp, một khi nó khơng cịn đáp ứng các u
cầu, có thể là một chi phí lớn về thời gian và tài nguyên. Cơ sở dữ liệu của doanh nghiệp
có đủ mạnh, có thể mở rộng và linh hoạt để phát triển cùng không? Sử dụng OrientDB
cũng giúp giảm sự hỗ trợ từ nhiều thiết bị từ nhiều hãng để đạt được mục tiêu của doanh
nghiệp.
MÃ NGUỒN MỞ
Cái nào có nhiều khả năng có chất lượng tốt hơn? Một DBMS được tạo và thử
nghiệm bởi một số ít các nhà phát triển hay một DBMS được thử nghiệm bởi hơn
100.000 nhà phát triển trên toàn cầu? Khi mã nguồn được cơng khai, mọi người đều có
thể xem xét kỹ lưỡng, kiểm tra, báo cáo và giải quyết các vấn đề. Tất cả mọi thứ Mã
nguồn mở đều di chuyển nhanh hơn so với thế giới độc quyền. Trên thực tế, các cơ sở dữ
liệu phổ biến nhất được DB-Engines xếp hạng hiện nay là Mã nguồn mở.


2.4 Ứng dụng
Từ những đặc điểm trên ta có thể ứng dụng OrientDB vào các mảng như:











Banking.
Big Data.
Fraud prevention (phịng chống gian lận).
Loan management software (Floify – phần mềm quản lý khoản vay).
Master data management (quản ls dữ liệu).
Non-coding RNA human interaction database.
Recommendation engines .
Social networking (mạng xã hội).
Traffic management systems (hệ thống quản lý lưu lượng).


CHƯƠNG 3. CÁC CƠ CHẾ AN TOÀN CỦA ORIENTDB
3.1 Tắt tài khoản mặc định
Về cơ bản, khi tạo ra một CSDL mới, 3 roles (vai trò) và tên đăng nhập tương úng
với 3 vai trò được tạo ra. Các roles ở đây là admin, reader và writer. Tương ứng với nó là
các user: admin, reader và writer. Mật khẩu của các users này trùng với tên tài khoản.
Theo khuyến cáo của nhà sản xuất thì người quản trị nên tắt các users này. Việc tắt
bỏ các users này thì được làm bằng cách vào file security.json trong thư mục config. Đặt
giá trị createDefaultUsers thành false.

Hình 3.1: Tắt tài khoản mặc định

3.2 Phân quyền user
User (người dùng) là một tác nhân trên CSDL. Khi bạn mở CSDL lên, cần chỉ
định tên người dùng và mật khẩu để sử dụng. Mỗi người dùng có thơng tin xác thực và
quyền riêng của mình.
Theo quy ước, mỗi khi bạn tạo một cơ sở dữ liệu mới, OrientDB sẽ tạo ra ba người
dùng mặc định. Mật khẩu của những người dùng này giống với tên người dùng. Có nghĩa
là, theo mặc định, người dùng quản trị (admin) có mật khẩu là admin. Cụ thể ở đây các 3

quyền trong OrientDB có chức năng:
• 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ộ.
• Writer: Người dùng này giống như Reader nhưng nó cũng có thể tạo, cập
nhật và xóa các bản ghi.
Bản thân users là các bản ghi được lưu trữ bên trong Cluster ouser. OrientDB lưu
trữ mật khẩu dưới dạng băm. Để biết thêm thông tin về mật khẩu, hãy xem Password
Management.


OrientDB lưu trữ trạng thái người dùng trong trường Status. Nó có thể là
SUSPENDED hoặc ACTIVE. Chỉ người dùng ACTIVE mới có thể đăng nhập.

Hình 3.2: Hiển thị tất cả người dùng trên console

Hình 3.3: Hiển thị tất cả người dùng trên Studio

Về việc phân quyền users, khi đã kết nối đến database, bạn có thể truy vấn để xem
các roles hiện tại bằng câu lệnh SELECT đến Cluster ORole trên console hoặc sử dụng
giao diện web bằng cách vào tab SECURITY > Roles.


Hình 3.4: Xem các Roles hiện tại trên console

Hình 3.5: Xem các Roles hiện tại trên studio

Để tạo một role mới có thể dùng câu lệnh INSERT hoặc sử dụng nút ADD ROLES

trên giao diện web.


Hình 3.6: Tạo Role mới trên console

Hình 3.7: Tạo Role mới trên studio

Các vai trị có thể kế thừa các quyền từ các vai trò khác theo kiểu hướng đối
tượng. Để cho phép một vai trò mở rộng một vai trị khác, hãy thêm vai trị mẹ vào thuộc
tính inheritRole. Ví dụ: giả sử bạn muốn người dùng có vai trò appusser kế thừa các cài
đặt từ vai trò writer. Dưới đây là ví dụ về thừa kế vai trị sử dụng SQL hoặc có thể sử
dung giao diện.


Hình 3.8: Thừa kế Role trên console

Hình 3.9: Thừa kế Role trên studio

Rules (quy tắc) xác định những gì người dùng thuộc một role (vai trị) nhất định có
thể làm trên CSDL. Trên OrientDB, các chế độ làm việc (working mode) xác định cách
OrientDB diễn giải các Rules này. Có 2 chế độ làm việc, được chỉ đình bằng 1 và 0.
• Allow All But (Rules) Theo mặc định 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 Rules. Nếu OrientDB
không tìm thấy rule 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 power
users và quản trị viên. Role Admin (mặc định) sử dụng mode này và khơng
có ngoại lệ, nó thường được viết bằng số 1 trong CSDL
• 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 Rules. Nếu OrientDB
tìm thấy các rules cho một tài ngun được 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ả
user thương. Role Writer và Reader (mặc định) sử dụng mode này, nó
thường được viết bằng số 0 trong CSDL
Một Rule thì gồm các quyền. Theo cổ điển, các quyền thường được hỗ trợ là
CRUD hay Create, Read, Update, Delete. Các quyền này được OrientDB biểu điển lại
bằng flag gồm 4bits.


Hình 3.10: Các quyền CRUD biểu thị thành các flag 4 bits

Ví dụ như hình dưới ta có thể thay đổi các mode 0 và 1 của role reader, tiếp đó
chọn role reader để thêm các exception cho mode này.

Hình 3.11: Thay đổi các mode của các role trên studio

Cuối cùng sau khi tạo xong các role này ta có thể gán (GRANT) hoặc gỡ
(REVOKE) cho một user nào đó. Ví dụ dưới đây là câu lệnh SQL để gán role
motorcyclist vào cluster Car hoặc sử dụng giao diện để gán role admin vào user long.

Hình 3.12: Gán role cho user trên console


Hình 3.13: Gán role cho user trên studio

3.3 An tồn mức bản ghi
Các phần ở trên quản lý bảo mật theo chiều dọc ở cấp giản đồ (schema), nhưng
trong OrientDB bạn cũng có thể quản lý bảo mật theo chiều ngang, đó là: trên mỗi bản
ghi (record). Điều này cho phép bạn tách biệt hoàn toàn các bản ghi cơ sở dữ liệu dưới
dạng sandboxes, nơi chỉ những người dùng được ủy quyền mới có thể truy cập các record
bị hạn chế.

Để bảo mật mức bản ghi đang hoạt động, hãy tạo các class kế thừa super class
ORestricted. Trong trường hợp bạn đang làm việc với Cơ sở dữ liệu đồ thị, hãy đặt các
lớp V và E (nghĩa là các lớp vertex và edge) kế thừa ORestricted. Dưới đây là 2 ví dụ sử
dụng SQL để extend các class vào super class là ORestricted và sử dụng giao diện để cho
class person kế thừa ORestricted.

Hình 3.14: Tạo Class kế thừa ORestricted trên console


Hình 3.15: Alter Class kế thừa ORestricted trên console

Hình 3.16: Alter Class kế thừa ORestricted trên studio

Khi mà những class mới tạo ra đã kế thừa class ORestricted. Các bản ghi sẽ được
gán thêm các trường riêng do OrientDB tạo ra để ủy quyền cho các user. Có 4 trường
chính tương đương với các quyền:
• _allow Chứa những người dùng có tồn quyền truy cập vào bản ghi, (nghĩa
là tất cả các hoạt động CRUD).
• _allowRead Chứa những người dùng có thể đọc bản ghi.
• _allowUpdate Chứa những người dùng có thể cập nhật bản ghi.
• _allowDelete Chứa những người dùng có thể xóa bản ghi.
Dưới đây là ví dụ về việc sử dụng SQL để đồng ý user có record id #5:10 được
đọc bản ghi #43:22 và gỡ quyền.

Hình 3.17: Thêm quyền cho User trên bản ghi ở console


Hình 3.18: Gỡ quyền User trên bản ghi ở console

Ở dưới là một ví dụ khác về gán các quyền mức bản ghi tuy nhiên sẽ sử dụng giao

diện. Có thể gán bằng các câu lệnh SQL trên giao diện như khi dùng console. Hoặc khi
tạo một record mới sau khi bấm SAVE, ta sẽ chọn các mục _allowDelete, _allowRead,
_allow, _allowUpdate tùy theo nhu cầu. Chọn users, roles cần gán và save lại bản ghi.

Hình 3.19: Tạo một user mới và gán quyền cho user trên bản ghi (1)

Hình 3.20: Tạo một user mới và gán quyền cho user trên bản ghi (2)


Hình 3.21: Kiểm tra quyền của user sau cá thao tác

3.4 Mã hóa CSDL
Mã hóa của OrientDB sẽ ở mức CSDL và sử dụng thuật tốn mã hóa AES để mã
hóa. Bạn có thể tạo cơ sở dữ liệu được mã hóa bằng console hoặc thơng qua API Java. Để
tạo một cơ sở dữ liệu được mã hóa, chỉ cần đặt khóa mã hóa bằng cách xác định giá trị
storage.encryptionKey thơng qua lệnh CONFIG trên console, trước lệnh CREATE
DATABASE.

Hình 3.22: Đặt khóa và tạo DB mới sử dụng khóa mới tạo để mã hóa

Cho dù bạn sử dụng console hay API Java, các lệnh này sẽ mã hóa tồn bộ cơ sở
dữ liệu trên đĩa. OrientDB khơng lưu trữ khóa mã hóa trong cơ sở dữ liệu. Bạn phải cung
cấp nó tại thời điểm chạy. Bạn có thể truy cập cơ sở dữ liệu được mã hóa thơng qua
console hoặc API Java. Để làm như vậy thông qua bảng điều khiển, hãy đặt khóa mã hóa
bằng storage.encryptionKey, sau đó mở cơ sở dữ liệu. Trong trường hợp bạn chuyển khóa
null hoặc không hợp lệ khi bạn mở cơ sở dữ liệu, OrientDB đưa ra một ngoại lệ
ODatabaseException.


Hình 3.23: Đặt khóa và kết nối vào DB tương ứng vói khóa đó


3.5 Mã hóa SSL
Trước tiên, chúng ta nên biết rằng Giao thức bảo mật – SSL là viết tắt của từ
Secure Sockets Layer. Đây là một tiêu chuẩn an ninh cơng nghệ tồn cầu tạo ra một liên
kết được mã hóa giữa máy chủ web và trình duyệt. Liên kết này đảm bảo tất cả các dữ
liệu trao đổi giữa máy chủ web và trình duyệt ln được bảo mật và an toàn. SSL đảm
bảo rằng tất cả các dữ liệu được truyền giữa các máy chủ web và các trình duyệt được
mang tính riêng tư, tách rời. SSL là một chuẩn công nghiệp được sử dụng bởi hàng triệu
trang web trong việc bảo vệ các giao dịch trực tuyến với khách hàng của họ.
Thiết lập Kho khóa và Kho tin cậy

Hình 3.24: Tạo chứng chỉ sử dụng keytool

Hình 3.25: Xuất chứng chỉ

Hình 3.26: Tạo chứng chỉ/ kho khóa trên máy khách, console

Hình 3.27: Tạo keystore cho máy khách, nhập chứng chỉ máy chủ

Điều này thiết lập rằng máy khách tin cậy máy chủ.
Giờ đây, bạn đã có chứng chỉ tự ký để sử dụng với OrientDB. Hãy nhớ rằng đối
với mỗi JVM máy khách từ xa mà bạn muốn kết nối với máy chủ, bạn cần lặp lại các
bước ba và bốn. Hãy nhớ thay đổi bí danh, kho khóa và tên tệp tin lưu trữ cho phù hợp.


Cấu hình máy chủ
Tệp cấu hình máy chủ $ORIENTDB_HOME/config/orientdb-server-config.xml,
khơng sử dụng SSL theo mặc định. Để bật SSL trên trình xử lý giao thức, bạn phải thay
đổi socket thuộc tính thành <listener>giá trị từ defaultmột trong các <socket>định nghĩa
đã định cấu hình của bạn .

Có hai định nghĩa mặc định có sẵn: sslvà https. Đối với hầu hết các trường hợp sử
dụng, điều này là đủ, tuy nhiên bạn có thể xác định thêm nếu bạn muốn bảo mật các trình
nghe khác nhau bằng chứng chỉ riêng của họ hoặc muốn sử dụng triển khai nhà máy tùy
chỉnh. Khi sử dụng ssltriển khai, hãy nhớ rằng cổng mặc định cho OrientDB SSL
là 2434. Bạn cần thay đổi phạm vi cổng của mình thành 2434-2440.
Theo mặc định, máy chủ OrientDB tìm kiếm các khóa và cửa hàng tin cậy của
nó $ORIENTDB_HOME/config/cert. Bạn có thể cấu hình nó bằng cách sử dụng
các <socket>tham số. Đảm bảo rằng tất cả khóa và kho lưu trữ tin cậy được tạo trong
thiết lập trước đó nằm trong đúng thư mục và mật khẩu được sử dụng là chính xác.
LƯU Ý : Các đường dẫn là tương đối với $ORIENTDB_HOME. OrientDB cũng
hỗ trợ các đường dẫn tuyệt đối.

Hình 3.28: Cấu hình lại Socket trong file cấu hình của server

Cấu hình máy khách


Để định cấu hình máy khách từ xa, hãy sử dụng các mẫu thuộc tính hệ thống Java
tiêu chuẩn:
• client.ssl.enabled: Sử dụng tùy chọn này để bật / tắt SSL. Tài sản chấp
nhận truehoặc false. Bạn chỉ cần xác định điều này khi sử dụng các kết nối
máy khách nhị phân từ xa.
• javax.net.ssl.keyStore: Xác định đường dẫn đến kho khóa.
• javax.net.ssl.keyStorePassword: Xác định mật khẩu cho kho khóa.
• javax.net.ssl.trustStore: Xác định đường dẫn đến cửa hàng tin cậy.
• javax.net.ssl.trustStorePassword: Xác định mật khẩu cho cửa hàng tin cậy.
Sử dụng các bước thứ ba và thứ tư từ phần Thiết lập Kho khóa và Kho tin cậy ở
trên để tạo chứng chỉ máy khách và độ tin cậy của máy chủ. Các đường dẫn đến các cửa
hàng là dành riêng cho khách hàng, nhưng không cần phải giống với máy chủ.
Lưu ý, nếu bạn muốn sử dụng kho tin cậy khóa và / quặng khác với kho lưu trữ tin

cậy của JVN mặc định, bạn cũng cần xác định các biến sau:





client.ssl.keyStore: Xác định đường dẫn đến kho khóa.
client.ssl.keyStorePass: Xác định mật khẩu kho khóa.
client.ssl.trustStore: Xác định đường dẫn đến cửa hàng tin cậy.
client.ssl.trustStorePass: Xác định mật khẩu cho cửa hàng tin cậy.

3.6 An toàn Server
Các máy chủ OrientDB riêng lẻ có thể quản lý nhiều cơ sở dữ liệu cùng một lúc và
mỗi cơ sở dữ liệu có thể có nhóm người dùng riêng. Khi sử dụng OrientDB thơng qua
giao thức HTTP, máy chủ OrientDB sử dụng một vùng cho mỗi cơ sở dữ liệu.
Cấu hình
Mặc dù người dùng và mật khẩu mặc định vẫn ổn khi bạn đang thiết lập hệ
thống của mình, nhưng sẽ khơng thể tránh khỏi việc để chúng ở chế độ sản xuất. Để
giúp hạn chế người dùng không đáng tin cậy truy cập vào máy chủ OrientDB, hãy
thêm người dùng mới và thay đổi mật khẩu trong config/orientdb-server-config.xml tệp
cấu hình máy chủ.
Để hạn chế người dùng trái phép tự cấp đặc quyền trên máy chủ OrientDB, hãy
tắt quyền ghi vào tệp cấu hình. Để giúp ngăn họ xem mật khẩu, hãy tắt quyền truy cập
đọc. Lưu ý rằng ngay cả khi mật khẩu đã được băm, có nhiều kỹ thuật có sẵn để bẻ
khóa băm hoặc đốn mật khẩu thực.
Quản lý người dùng


Bắt đầu từ phiên bản 2.2, bảng điều khiển OrientDB cung cấp một loạt lệnh để
quản lý người dùng:

• LIST SERVER USERS: Hiển thị tất cả người dùng.
• SET SERVER USER : Tạo hoặc sửa đổi người dùng.
• DROP SERVER USER: Xóa người dùng.
Tài nguyên máy chủ
Mỗi người dùng có thể khai báo tài nguyên nào có quyền truy cập. Ký tự đại
diện *cấp quyền truy cập vào bất kỳ tài nguyên nào. Theo mặc định, người dùng rootcó
tất cả các đặc quyền ( *), vì vậy người dùng có thể truy cập vào tất cả các cơ sở dữ liệu
và hoạt động được quản lý.


×