Professional Documents
Culture Documents
Couchbase-Final Compress
Couchbase-Final Compress
AN TOÀN CƠ SỞ DỮ LIỆU
Đề tài
Hệ quản trị CSDL phi quan hệ - NoSQL
Couchbase và vấn đề bảo mật
Hà Nội, 12/2017
I
MỤC LỤC
Lời nói đầu....................................................................................................................... 1
3. Truy vấn..................................................................................................................3
6. Phân tích..................................................................................................................4
7. Cơ sở dữ liệu Core...................................................................................................4
1. Tổng quan................................................................................................................9
2. Mô hình dữ liệu.......................................................................................................9
2.2. Sơ đồ động......................................................................................................11
6. Quản lý dữ liệu......................................................................................................25
1. Tổng quan..............................................................................................................29
2.2. Bật tính năng xác thực dựa trên chứng chỉ x.509 trên máy chủ.......................30
4. Ủy quyền...............................................................................................................34
III
4.1. RBAC dành cho Quản trị viên........................................................................34
5. Kiểm tra.................................................................................................................36
6. Mã hóa...................................................................................................................40
6.4. Secret-Management........................................................................................45
Kết luận..........................................................................................................................46
IV
Danh mục hình vẽ
Hình 1. Mô hình quan hệ cho lịch trình chuyến bay.......................................................10
Hình 2. Mô hình dữ liệu hướng dẫn tài liệu cho việc đặt chuyến bay.............................11
Hình 3. Xác minh chứng chỉ...........................................................................................43
Hình 4. Chọn chứng chỉ gốc trong vai trò Quản trị viên.................................................43
Hình 5. Chứng chỉ gốc (minh họa).................................................................................44
V
Lời nói đầu
Trong vài năm qua chúng ta đã thấy sự gia tăng của một loại cơ sở dữ liệu
mới, đó là cơ sở dữ liệu NoSQL - mà đang thách thức sự thống trị của cơ sở dữ
liệu quan hệ. Cơ sở dữ liệu quan hệ đã thống trị ngành công nghiệp phần mềm
trong một thời gian dài khi đã cung cấp cơ chế để lưu trữ dữ liệu liên tục, đồng
thời kiểm soát, giao dịch, giao diện được chuẩn hóa và được tích hợp vào các hệ
thống dữ liệu ứng dụng, báo cáo. Tuy nhiên, ưu thế đó đã không còn tồn tại cho cơ
sở dữ liệu quan hệ nữa. Nội dung báo cáo này sẽ tập trung vào ứng dụng của
NoSQL và các vấn đề bảo mật xung quanh nó.
Chúng em xin chân thành cảm ơn cô Nguyễn Thị Lượng đã tận tình hướng
dẫn và đưa ra những nhận xét giúp báo cáo của nhóm được hoàn thiện hơn.
VI
Chương 1: Tổng quan
VII
- Mobile và IoT
- Phân tích
- Công cụ cơ sở dữ liệu lõi
- Kiến trúc bộ nhớ đầu tiên
- Dữ liệu lớn và tích hợp SQL
- Bảo mật toàn stack
- Triển khai container và đám mây
- Tính sẵn sàng cao
3. Truy vấn
Cung cấp nhiều đường truy cập dữ liệu để truy vấn và quản lý tài liệu JSON.
Nhà phát triển ứng dụng có thể chọn mô hình truy cập dữ liệu đáp ứng tốt nhất yêu
cầu của họ. Đường dẫn truy cập dữ liệu linh hoạt làm cho Couchbase hữu ích cho
nhiều ứng dụng và trường hợp sử dụng.
Couchbase Server có thể được truy vấn bằng cách sử dụng N1QL, một
phương ngữ SQL thể hiện, mạnh mẽ và đầy đủ để truy vấn, chuyển đổi và điều
VIII
khiển dữ liệu JSON. Như SQL, nó ngay lập tức quen thuộc với các nhà phát triển -
những người có thể nhanh chóng bắt đầu phát triển các ứng dụng phong phú.
Không giống như các cơ sở dữ liệu NoSQL khác, Couchbase hỗ trợ JOIN, cho
phép một loạt các mô hình dữ liệu. Để giúp người dùng phát triển các ứng dụng
phong phú với sự linh hoạt, N1QL được hỗ trợ bởi một cơ sở hạ tầng chỉ mục
phong phú và cũng có các phần mở rộng cho phép xử lý các tài liệu không đồng
nhất với cấu trúc lồng nhau. N1QL có thể truy cập vào một loạt các công cụ để
phân tích và tích hợp dữ liệu thông qua JDBC và ODBC, chẳng hạn như Microsoft
Excel và Tableau.
6. Phân tích
Couchbase analytics cung cấp xử lý truy vấn song song mạnh mẽ. Được
thiết kế để thực hiện hiệu quả các truy vấn phức tạp, dài có chứa join phức tạp,
thiết lập, tập hợp và hoạt động nhóm. Giải quyết các thách thức của việc hỗ trợ
ứng dụng đáp ứng, khả năng mở rộng và phân tích đặc biệt trên cùng tập dữ liệu.
7. Cơ sở dữ liệu Core
Công cụ cơ sở dữ liệu lõi cung cấp các khả năng cơ bản cho việc quản lý và
lập chỉ mục tài liệu. Dựa trên bộ nhớ thứ nhất, cấu trúc bất đồng bộ ở mọi nơi, điều
IX
này bao gồm các năng lực cốt lõi của công cụ cơ sở dữ liệu, như: lưu trữ dữ liệu,
sao chép liên nút.
Tài liệu Couchbase là JSON, một định dạng tự mô tả có thể biểu diễn các
cấu trúc và mối quan hệ phong phú. Không giống như RDBMS truyền thống, lược
đồ trong Couchbase Server là một cấu trúc logic được định nghĩa hoàn toàn trong
mã ứng dụng và được lưu giữ trong cấu trúc của các tài liệu lưu trữ. Vì không có
giản đồ rõ ràng để duy trì, các nhà phát triển có thể thêm các đối tượng và thuộc
tính mới vào bất kỳ lúc nào chỉ bằng cách đẩy mã ứng dụng mới lưu trữ JSON mới
mà không cần phải thực hiện các thay đổi tương tự cho các lược đồ. Điều này cho
phép các ứng dụng phát triển nhanh chóng và liền mạch.
Couchbase là một cơ sở dữ liệu tham gia phục vụ các yêu cầu của khách
hàng ở quy mô internet. Điều này tương phản với các cơ sở dữ liệu phân tích như
Hadoop và Spark và các môi trường học máy mà các nhà phân tích hoặc các nhà
khoa học dữ liệu truy cập được có thể chịu đựng được độ trễ lớn hơn.
XI
Bảo vệ dữ liệu khách hàng là điều bắt buộc, cả từ việc tuân thủ và từ góc
nhìn truy cập dữ liệu cơ bản. Couchbase Data Platform cung cấp dữ liệu an toàn ở
mọi nơi - trên dây, trên thiết bị, trong đám mây và trong trung tâm dữ liệu.
XII
12.Triển khai container và đám mây
Các doanh nghiệp đang nhanh chóng áp dụng chiến lược điện toán đám mây
để tạo ra và cung cấp sự đổi mới nhanh hơn và thích nghi với sự thay đổi liên tục
trong nhu cầu kinh doanh. Couchbase hỗ trợ tất cả các nền tảng đám mây, cũng
như một loạt các container và các công nghệ ảo hóa để hoạt động.
XIV
Chương 2: Hệ quản trị cơ sở dữ liệu couchbase
1. Tổng quan
Couchbase Server là một cơ sở dữ liệu hướng tài liệu NoSQL mã nguồn mở
cung cấp quản lý dữ liệu độ trễ thấp cho các ứng dụng trực tuyến tương tác quy mô
lớn. Nó được thiết kế để quy mô dễ dàng và hiệu suất cao, được xây dựng với sự
nhấn mạnh về độ tin cậy, tính sẵn sàng cao và quản lý đơn giản, Couchbase phục
vụ dữ liệu liên tục với sự can thiệp tối thiểu của nhà phát triên.
Couchbase Server có thể được sử dụng như là một:
- Bộ nhớ đệm được quản lý
- Một nơi lưu trữ key- value
- Một cơ sở dữ liệu hướng tài liệu
Couchbase Server cùng với Couchbase Mobile cho phép các doanh nghiệp
tăng linh hoạt của doanh nghiệp, đạt được thời gian nhanh hơn để phục vụ thị
trường và hoạt động trên quy mô toàn cầu đồng thời giảm chi phí. Couchbase giúp
đáp ứng các yêu cầu cho nhiều nhu cầu khác nhau, từ doanh nghiệp sang cơ sở hạ
tầng đám mây, đến Internet of Things và dữ liệu lớn, cho các thiết bị di động.
2. Mô hình dữ liệu
2.1. Mô hình dữ liệu hướng tài liệu
Tài liệu được lưu trữ trong Couchbase Server ở định dạng JSON, một ký
pháp đơn giản, nhẹ gọn và nhỏ gọn có thể đọc được của con người. JSON hỗ trợ cả
hai kiểu dữ liệu cơ bản như số và chuỗi và các kiểu phức tạp như từ điển và mảng
nhúng.
Có một số lợi thế khi sử dụng JSON làm định dạng dữ liệu trong
Couchbase. JSON là trung gian của việc trao đổi dữ liệu trong các ứng dụng di
động và trên web: đây là loại trả về API REST phổ biến nhất. Do tính phổ biến
này, JSON rất dễ dàng và hiệu quả để tạo và sử dụng từ bất kỳ ngôn ngữ lập trình
XV
nào. Serialization và deserialization rất nhanh. JSON là nguồn gốc của JavaScript,
điều này làm cho nó rất thuận tiện cho việc lập trình ứng dụng web.
Trong Couchbase, một tài liệu thường đại diện cho một thể hiện duy nhất
của một đối tượng trong mã ứng dụng. Tài liệu Couchbase giống như các hàng
trong một bảng quan hệ: mỗi một là một bản ghi. Mỗi thuộc tính giống như một
cột trong bảng.
Không giống như một bảng quan hệ, tuy nhiên, các tài liệu của các lược đồ
khác nhau có thể được lưu trữ trong Couchbase. Nếu một ứng dụng muốn phân
biệt giữa nhiều loại, có thể thực hiện một số cách tiếp cận (như thêm trường 'type'
trong một tài liệu, như được hiển thị bên dưới).
Tài liệu couchbase bản thân có thể chứa các cấu trúc lồng nhau (tiểu tài
liệu). Điều này cho phép các nhà phát triển dễ dàng thể hiện các mối quan hệ
nhiều-nhiều mà không đòi hỏi phải có một "bảng tham chiếu" hoặc "bảng giao lộ".
Nó cũng diễn tả cho dữ liệu phân cấp tự nhiên.
Để hiểu mô hình tài liệu trên thực tế, hãy suy nghĩ về một đơn đặt chỗ
chuyến bay trực tuyến cho phép người sử dụng tìm kiếm các chuyến bay theo ngày
tháng. Trong một mô hình dữ liệu quan hệ, sẽ có các bảng cho các hãng hàng
không, chuyến bay và lịch trình trong số nhiều người khác có thể trông giống như
hình dưới đây.
XVI
Tuy nhiên, trong Couchbase, mô hình hướng tài liệu có thể là một đối tượng
tuyến đường duy nhất nhúng một mảng lịch cho tất cả các chuyến bay giữa hai sân
bay.
Hình 2. Mô hình dữ liệu hướng dẫn tài liệu cho việc đặt chuyến bay
Trái ngược với mô hình quan hệ, mỗi tài liệu tuyến đường đều chứa một yêu
cầu duy nhất cho một nút Couchbase có thể trả lại tất cả các thông tin cần thiết để
hoàn thành yêu cầu của ứng dụng. Sự độc lập của các tài liệu có ý nghĩa quan
trọng đối với khả năng mở rộng và độ trễ. Ví dụ, các tài liệu có thể dễ dàng sao
chép hoặc thay đổi mà không ảnh hưởng đến bất kỳ tài liệu nào khác. Điều này
cho phép Couchbase theo chiều ngang bằng cách sử dụng một nhóm các phần
cứng mà không cần yêu cầu các nút phải phối hợp để đáp ứng yêu cầu của ứng
dụng.
2.2. Sơ đồ động
Trong Couchbase, khi chúng ta đề cập đến một giản đồ, chúng ta đề cập đến
cách ứng dụng cấu trúc các tài liệu của nó. Trái với RDBMS truyền thống, các
lược đồ trong Couchbase được xác định và quản lý hoàn toàn bởi ứng dụng.
Các tài liệu Couchbase lấy các lược đồ chỉ từ cấu trúc của JSON. Thay vì cơ
sở dữ liệu thực thi lược đồ và yêu cầu tất cả dữ liệu thống nhất, Couchbase (và
NoSQL nói chung) chuyển điều khiển này sang ứng dụng và đơn giản hóa nó ở
mức cơ sở dữ liệu. Thiết kế này cho phép thay đổi giữa các tài liệu, thậm chí các
tài liệu cùng loại. Hãy xem xét một cửa hàng bán lẻ trực tuyến lớn có chứa nhiều
XVII
sản phẩm văn phòng, chẳng hạn như bút và máy in laser. Mặc dù nhiều thuộc tính
như kích thước hoặc trọng lượng sẽ áp dụng cho cả hai mặt hàng, chỉ một số tài
liệu cần có các thuộc tính như "kiểu kết nối" và "in hai mặt". Với Couchbase
Server, không cần phải tạo ra vô số các thuộc tính null hoặc để xác định hàng trăm
các lược đồ khác nhau để xử lý các dữ liệu đó - các thuộc tính cần thiết có thể
được đưa vào các tài liệu cần đến và chỉ cần bỏ đi những tính năng không cần
thiết. Các tài liệu lược đồ linh hoạt cũng phù hợp với dữ liệu có kích thước khác
nhau, chẳng hạn như ví dụ đặt chỗ chuyến bay ở trên: không có gì khác biệt khi
một số tài liệu định tuyến chứa hàng ngàn chuyến bay theo lịch trình và một số
khác chỉ có một vài chuyến bay.
Vì một lược đồ trong Couchbase là một cấu trúc logic được xác định bởi
ứng dụng nên các lược đồ vì vậy là động - chúng thay đổi cùng với ứng dụng của
bạn, cho phép nó thực sự nhanh nhẹn. Đối với người lập trình, lợi ích quan trọng
của các lược đồ linh hoạt là các đối tượng có thể được định nghĩa một lần trong mã
ứng dụng hơn là cần phải được xác định và giữ đồng bộ trong cả hai mã ứng dụng
và riêng trong một giản đồ cơ sở dữ liệu. Không giống như một RDBMS truyền
thống với một giản đồ cố định, một lập trình viên có thể thêm thuộc tính hoặc cấu
trúc vào một số tài liệu mà không cần quay lại và thêm chúng vào các tài liệu khác
cùng loại. Bằng cách này, các ứng dụng có thể phát triển mà không yêu cầu lập
trình thay đổi cấu trúc của các bảng bên dưới, quản lý phiên bản lược đồ hoặc chịu
rắc rối về di chuyển lược đồ.
Lợi thế cho một giản đồ ứng dụng được xác định là rõ ràng trong các ứng
dụng lớn và lâu dài. Các nhà phát triển có thể thay đổi mã ứng dụng và có giản đồ
được cập nhật ngay lập tức được lưu trữ và truy cập được. Tài liệu có thể phát triển
liên tục theo thời gian khi ứng dụng web thay đổi.
XIX
3. Truy cập dữ liệu
Couchbase cung cấp nhiều cách truy cập dữ liệu: sử dụng mẫu truy cập giá
trị khóa, truy vấn dữ liệu bằng MapReduce (lượt xem) hoặc N1QL. Bạn cũng có
thể sử dụng tính năng Tìm kiếm Toàn văn (FTS) để truy vấn dữ liệu.
Ở cấp độ cao, truy cập khóa-giá trị cung cấp đường dẫn truy cập hiệu năng
cao trực tiếp đến dữ liệu bằng cách sử dụng khoá cho mục được lưu trữ. Đối với
các ứng dụng đang tìm thời gian trễ milli giây lẻ, phương pháp giá trị khóa cung
cấp truy cập nhanh nhất dữ liệu của bạn. Tuy nhiên, không phải tất cả các truy cập
dữ liệu có thể có một chìa khóa trong tay và đó là nơi các truy vấn đi vào. Các truy
vấn có thể được thực hiện bằng cách sử dụng xem MapReduce và N1QL. N1QL
cung cấp một ngôn ngữ truy vấn linh hoạt và khai báo giống như truy cập SQL
được cung cấp bởi cơ sở dữ liệu quan hệ. N1QL thật tuyệt vời để truy cập nhanh
vào dữ liệu của bạn cho các hoạt động như tra cứu thứ cấp về các thuộc tính trong
tài liệu JSON của bạn. Ví dụ: tra cứu người dùng bằng địa chỉ email người dùng và
không phải là userID được sử dụng cho khoá tài liệu.
Chế độ xem cũng cung cấp một cách mạnh mẽ để lập chỉ mục dữ liệu với
bản đồ do người dùng định nghĩa và giảm chức năng. Chế độ xem có thể là một
lựa chọn mạnh mẽ để tái tạo lại và tập hợp dữ liệu trước. Chế độ xem là giải pháp
lý tưởng để báo cáo tương tác dữ liệu của bạn.
XXII
N1QL cung cấp một bộ các tính năng phong phú cho phép bạn truy xuất,
thao tác, chuyển đổi và tạo dữ liệu tài liệu JSON. Các tính năng chính bao gồm:
Câu lệnh SELECT: Câu lệnh SELECT trong N1QL mở rộng chức năng của
câu lệnh SQL SELECT để làm việc với các tài liệu JSON. Bạn có thể sử dụng kiến
thức về SQL để làm việc với các tính năng NoSQL mạnh mẽ của Couchbase, từ đó
cho phép bạn làm việc với dữ liệu lớn, người dùng dữ liệu lớn và điện toán đám
mây.
Ngôn ngữ Thao tác Dữ liệu (DML): N1QL cung cấp các câu lệnh DELETE,
INSERT, UPDATE và UPSERT để tạo, xóa và sửa đổi dữ liệu được lưu trữ trong
tài liệu JSON. Bạn có thể thực hiện các thao tác này bằng cách xác định và thực
hiện các lệnh đơn giản.
Chỉ mục: N1QL cung cấp các câu lệnh CREATE và DROP INDEX để dễ
dàng tạo và xóa các chỉ mục.
Truy cập khóa chính: Dữ liệu trong Couchbase Server có thể được lưu trữ
trong các cặp khóa-giá trị, cung cấp truy cập khoá chính cho bất kỳ dữ liệu nào.
Tổng hợp: N1QL cung cấp các toán tử tổng hợp SQL tiêu chuẩn như MIN,
MAX, COUNT, cũng như các toán tử nhóm, mệnh đề GROUP BY, và bộ lọc
nhóm, HAVING.
Câu lệnh join: N1QL cho phép bạn lấy dữ liệu từ nhiều tài liệu bằng cách
xác định tham gia trong mệnh đề FROM.
Nesting: Nest cho phép bạn lấy các bản ghi phụ cho một bản ghi. Nghĩa là,
đối với mỗi đầu vào trái, đầu vào tay phải kết hợp được thu thập thành một mảng,
sau đó được nhúng trong kết quả. Ví dụ: bạn có thể xếp mỗi mục theo thứ tự của
khách hàng. Các tổ có thể được thực hiện trên nhiều tài liệu.
XXIII
Unnesting: Unnesting là đối lập của nesting. Hàm UNNEST chiết xuất các
bản ghi phụ được lồng từ một bản ghi, làm cho mỗi bản trích xuất một bản ghi
riêng biệt. Lưu ý rằng unnesting có thể được thực hiện trên một tài liệu duy nhất.
Các truy vấn phụ: N1QL hỗ trợ truy vấn nhiều phần thông qua các truy vấn
phụ. Bạn có thể sử dụng một truy vấn phụ với câu lệnh SELECT hoặc làm tổ đó
trong một truy vấn con khác, qua đó tinh chỉnh các kết quả của các truy vấn trước.
Các lệnh UNION, INTERSECT, VÀ EXCEPT: N1QL cung cấp các thao tác
UNION, INTERSECT, và EXCEPT để so sánh hai hoặc nhiều truy vấn. UNION
kết hợp kết quả của hai hoặc nhiều truy vấn vào một bộ kết quả duy nhất bao gồm
tất cả các hàng thuộc về tất cả các truy vấn trong liên minh. EXCEPT trả về bất kỳ
giá trị khác biệt nào từ truy vấn bên trái mà không tìm thấy trên truy vấn đúng.
INTERSECT trả về bất kỳ giá trị khác biệt nào được trả về bởi các truy vấn trên cả
hai mặt của toán hạng INTERSECT.
XXIV
4. Sự khác biệt giữa N1QL và SQL
Sự khác biệt quan trọng nhất giữa SQL truyền thống và N1QL là mô hình
dữ liệu. Sự khác biệt nổi bật khác bao gồm chiếu, lựa chọn và lọc dữ liệu.
NHÂN VIÊN
Tên | SSN | Mức lương
-----------------------------------------------------------------------
Jamie | 234 | 123
Steve | 123 | 456
LƯỢC ĐỒ:
Tên -> Chiều dài chuỗi 100
SSN -> Chiều dài chuỗi 9
Lương -> Số lượng có chiều dài chuỗi 10
NHÂN VIÊN:
-------------------------------------------------- ---------------------
Name_Key | Công ty | Bắt đầu | Kết thúc
Jamie | Yahoo | Năm 2005 | Năm 2006
Jamie | Oracle | 2006 | Năm 2012
Jamie | Couchbase | 2012 | VÔ GIÁ TRỊ
XXV
Trong N1QL, dữ liệu tồn tại dưới dạng các tài liệu dạng tự do, được thu thập
dưới dạng bộ sưu tập lớn được gọi là các khoảng khóa. Không có sự đồng nhất và
không có khoảng cách hợp lý của các đối tượng có cùng một hình dạng dữ liệu
trong không gian khóa. Đây là cách dữ liệu trong ví dụ trên trông trong N1QL:
(HRData keyspace)
{ 'Name': 'Jamie'
'SSN': 234
'Wage': 123
'History': [ ['Yahoo', 2005, 2006], ['Oracle', 2006, 2012], ]
},
{
'Name': Steve
'SSN': 123,
'Wage': 456,
}
Truy vấn:
SELECT Name, Company
FROM Employee, Employers
WHERE Name_Key = Name
XXVI
Kết quả:
Name | Company
----------------
Jamie | Oracle
Jamie | Yahoo
Jamie | Couchbase
----------------
Giống như SQL, bạn có thể đổi tên các trường trong N1QL bằng cách sử
dụng từ khoá AS. Ngoài ra, bạn có thể định hình lại các dữ liệu trong N1QL, mà
không có tương tự trong SQL. Điều này được thực hiện bằng cách nhúng các
thuộc tính của câu lệnh trong đối tượng kết quả mong muốn.
Truy vấn:
SELECT Name, History, {'FullTime': true} AS 'Status'
FROM HRData
Kết quả:
{
'Name': 'Jamie',
'History':
[
['Yahoo', 2005, 2006],
['Oracle', 2006, 2012],
['Couchbase', 2012, null]
],
'Status': { 'FullTime': true }
}
{
'Name': 'Steve',
'Status': { 'FullTime': true }
}
XXVII
4.3. Lựa chọn dữ liệu
Trong N1QL, mệnh đề FROM được sử dụng để chọn giữa các nguồn dữ liệu
(keyspaces). Nếu HRData là một không gian khóa, câu lệnh sau đây sẽ chọn thuộc
tính Name từ tất cả các tài liệu trong không gian khóa HRData có thuộc tính Tên
được định nghĩa.
Khi sử dụng N1QL, mỗi tài liệu cũng có thể coi mình như một nguồn dữ
liệu và chạy truy vấn qua các phần tử lồng nhau của nó. Các phần tử lồng nhau
được sử dụng toán tử dấu chấm (.) Để hạ xuống mức và toán tử khung vuông ([])
để chỉ vào một phần tử mảng.
Các trường đã chọn cũng có thể được đổi tên bằng toán tử AS, giống như
trong SQL:
SELECT firstjob FROM HRData.History[0] AS firstjob
{
'firstjob': ['Yahoo', 2005, 2006]
}
XXVIII
mới, ví dụ từ các giá trị số nguyên khác 0 thành giá trị Boolean đúng, cũng được
hỗ trợ.
Hầu hết các hàm SQL tiêu chuẩn (ví dụ LOWER ()) đều được định nghĩa.
Ngoài các vị từ lọc chuẩn, N1QL cung cấp các toán tử mới để làm việc với các
mảng trong các tài liệu: ANY, SOME, and EVERY. ANY and SOME đánh giá một
điều kiện cho mỗi phần tử, và trả về true nếu bất kỳ phần tử nào đáp ứng điều kiện.
EVERY cũng đánh giá một điều kiện cho mỗi phần tử, ngoại trừ nó trả về true chỉ
khi tất cả các phần tử khớp với điều kiện.
XXX
Các chế độ xem không gian cũng có thể được tạo trên dữ liệu số để xác định
khối hình đa chiều (hyper-cube), chẳng hạn như mối quan hệ lứa tuổi của khách
hàng, thu nhập và chi tiêu suốt đời. Lợi thế của chế độ xem không gian so với chỉ
mục hợp chất là chế độ xem không gian có thể phục vụ các truy vấn có kích thước
theo thứ tự bất kỳ.
Các chỉ mục văn bản đầy đủ cho phép các nhà phát triển dễ dàng thêm các
khả năng tìm kiếm toàn văn vào ứng dụng của họ bằng cách sử dụng CBFT (xem
trước của nhà phát triển), các trường hợp sử dụng tìm kiếm mà không cần triển
khai các thành phần bổ sung, làm giảm tính phức tạp của hoạt động.
6. Quản lý dữ liệu
Couchbase Server cung cấp các dịch vụ quản lý dữ liệu thông qua trình quản
lý dữ liệu.
XXXII
6.3. Sự nhất quán của chỉ mục và bản sao
Theo mặc định, chỉ mục và bản sao được cập nhật không đồng bộ để có hiệu
suất tốt nhất. Trên cơ sở mỗi lần viết hoặc mỗi truy vấn, một ứng dụng có thể chọn
để giảm thiểu một số hiệu suất để ưu tiên độ tin cậy (đối với bản sao) hoặc tính
nhất quán (đối với truy vấn). RDBMs truyền thống và cơ sở dữ liệu NoSQL ghi
chậm để giữ cho các chỉ mục và bản sao được cập nhật. Couchbase theo thiết kế
cho phép nhà phát triển ứng dụng tạo ra sự cân bằng thông báo tùy thuộc vào điều
gì là quan trọng nhất đối với phần đó của ứng dụng.
Các chỉ số Couchbase được xây dựng từng bước, do đó, sau khi Couchbase
Server xây dựng ban đầu có thể phản hồi ngay lập tức cho một yêu cầu, hoặc có
thể được thực hiện để bắt kịp thời điểm khi truy vấn được phát hành. Nhà phát
triển có thể chọn độ tươi của dữ liệu chỉ mục tại thời điểm truy vấn bằng cách đặt
thuộc tính "cũ". Điều này cung cấp mức độ cấu hình cao, từ yêu cầu Couchbase
Server xử lý tất cả các bản cập nhật trước khi đưa ra phản hồi để cho phép
Couchbase Server ngay lập tức đáp ứng yêu cầu sử dụng trạng thái hiện tại của chỉ
mục tại thời điểm truy vấn hoặc ở giữa. Phạm vi các tùy chọn cho phép ứng dụng
càng nhanh càng tốt trừ khi có yêu cầu khó khăn để có được thông tin mới nhất
trong chỉ mục.
XXXIII
XXXIV
6.5. Truy cập đồng thời
Trong một hệ thống quản lý dữ liệu phân tán đang làm việc với khối lượng
cao, xung đột có thể xảy ra với nhiều khách hàng cố gắng ghi cùng một tài liệu
cùng một lúc. Tất cả các hoạt động Couchbase Server là nguyên tử ở cấp tài liệu.
Couchbase Server cung cấp cả khóa khách quan và chủ quan để ngăn chặn lỗi
đồng thời.
Khóa khách quan được dựa trên Giá trị So sánh (CAS), một số nhận dạng
gia tăng duy nhất và nguyên tử là một phần của siêu dữ liệu của mọi tài liệu. Một
số thao tác cập nhật đòi hỏi phải kiểm tra giá trị CAS thành công để thành công.
Ứng dụng vượt qua giá trị CAS như một tham số. Couchbase Server sau đó kiểm
tra giá trị CAS đã không thay đổi trước khi một tài liệu bị xóa hoặc sửa đổi để có
hiệu quả ngăn ngừa xung đột mà không cần phải khóa hồ sơ. Đây là phương pháp
tốt nhất được ưa thích, phương pháp xử lý đồng thời với Couchbase.
Couchbase Server cũng hỗ trợ khóa chủ quan (tương tự như semaphores
trong một ứng dụng), ít được sử dụng. Khóa bi quan sẽ được tự động phát hành để
ngăn chặn các deadlock không thể phục hồi được.
XXXV
Chương 3: Bảo mật trong Coachbase
1. Tổng quan
Để truy cập vào Couchbase Server, quản trị viên và các ứng dụng phải được
xác thực. Xác thực là một quá trình để xác định một người sử dụng đang cố gắng
truy cập vào một hệ thống.
XXXVI
2.1. Điều kiện chứng thực
Giấy chứng nhận x.509 là tiêu chuẩn chính thức cho chứng chỉ khoá công
khai và SSL / TLS dựa vào tiêu chuẩn này. Bạn phải sử dụng các chứng chỉ x.509
hợp lệ được tạo và ký bởi cùng một cơ quan chứng nhận gốc (CA). Chứng chỉ
x.509 phải ở định dạng PEM.
2.2. Bật tính năng xác thực dựa trên chứng chỉ x.509 trên máy chủ
Bạn có thể bật xác thực dựa trên chứng chỉ trên máy chủ bằng cách sử dụng
REST API hoặc CLI.
Cơ chế xác thực này chỉ có sẵn cho dịch vụ dữ liệu và cũng có thể được sử
dụng với SDK / clients. Đối với truy vấn và các dịch vụ khác, hãy sử dụng các cơ
chế xác thực được hỗ trợ khác.
Chỉ định đường dẫn của chứng chỉ để sử dụng để phân tích cú pháp cho
người dùng trên máy chủ.
curl -X POST --data-binary "path=subject.cn"
http://Administrator:password@localhost:8091/settings/clientCertAuth
Chỉ định tiền tố và dấu phân cách trong biểu thức đường dẫn đó.
curl -X POST --data-binary "delimiter="
http://Administrator:password@localhost:8091/settings/clientCertAuth curl -X
POST --data-binary "prefix="
http://Administrator:password@localhost:8091/settings/clientCertAuth
XXXVII
2.2.2. Sử dụng CLI
Sử dụng lệnh couchbase-cli sau:
couchbase-cli ssl-manage <options>
Sau khi thiết lập phía máy chủ để xác thực khách hàng, bạn cũng nên chỉ
định người dùng cho một số vai trò ở phía máy chủ. Làm như sau:
Tạo người dùng có nguồn xác thực (miền) 'Couchbase'.
Đảm bảo rằng người dùng này là người dùng được quản lý nội bộ với mật
khẩu mạnh. Mặc dù mật khẩu không được sử dụng như là một phần của xác thực
dựa trên chứng chỉ, nó là cần thiết nếu người dùng đang cố gắng truy cập các tài
nguyên thông qua web console.
XXXIX
Khi Bảng điều khiển Web Couchbase đang chạy trên cổng mặc định, http: //
localhost: 8091, tên người dùng và mật khẩu của quản trị viên được truyền trong rõ
ràng, từ trình duyệt của quản trị viên đến giao diện điều khiển. Tùy chọn,
Couchbase Web Console có thể được cấu hình để truy cập an toàn, tại https: //
localhost: 18091; để tên người dùng và mật khẩu được thông qua ở dạng mã hóa.
XL
SCRAM-SHA1: Sử dụng một phím 160-bit.
SCRAM-SHA256: Một trong những nhóm hàm băm được gọi là SHA2,
SCRAM-SHA256 sử dụng một khóa 256-bit.
SCRAM-SHA512: Một hàm băm khác từ nhóm SHA2, SCRAM-SHA512
sử dụng một phím 512-bit; và là giao thức xác thực mạnh nhất được hỗ trợ.
Trong quá trình đàm phán máy chủ khách hàng ban đầu, giao thức xác thực
mạnh nhất được hỗ trợ bởi cả Couchbase Server và hệ điều hành khách hàng của
ứng dụng được chọn để sử dụng. Ví dụ, nếu khách hàng chỉ hỗ trợ giao thức
PLAIN, giao thức PLAIN được sử dụng; nhưng nếu máy khách cũng hỗ trợ giao
thức SCRAM-SHA1, thì SCRAM-SHA1 được sử dụng.
Một phương pháp đáp ứng thách thức có thể được truyền qua cả hai kênh
mã hóa và không được mã hóa.
Lưu ý rằng các giao thức phản ứng thách thức SCRAM chỉ xác thực quá
trình xác nhận mật khẩu. Để đảm bảo cho phiên tiếp theo, nên sử dụng TLS.
4. Ủy quyền
Để ủy quyền cho người dùng, Couchbase Server cung cấp Kiểm soát Truy
cập dựa trên vai trò.
XLI
định có thể được thực hiện trong hệ thống: người dùng không có quyền truy cập
quản trị khác, trừ một người được xác định trong vai trò của họ.
Quản trị viên đầy đủ trong Couchbase có thể quản lý vai trò người dùng
bằng cách sử dụng các công cụ Couchbase CLI (như được mô tả trong quản trị-
role-role) hoặc REST API (như được mô tả trong RBAC).
XLII
XLIII
5. Kiểm tra
Các hành động thực hiện trên Couchbase Server có thể được kiểm tra. Điều
này cho phép một quản trị viên đầy đủ để đảm bảo rằng các nhiệm vụ quản lý hệ
thống đang được thực hiện một cách thích hợp. Điều này có thể tạo điều kiện cho
việc tuân thủ các tiêu chuẩn quy định.
XLIV
Remote cluster-reference User added User removed
deleted
Trong ví dụ này, một người dùng có tên bjones đã đăng nhập thành công
vào một cụm Couchbase bằng cách sử dụng địa chỉ IP của miền 172.23.107.165.
XLVI
5.2.3. Đăng nhập thất bại
Biểu ghi kiểm toán sau đây chỉ ra rằng nỗ lực đăng nhập thất bại:
Bản ghi này chỉ ra rằng người dùng tên auditBucketUser đã có một nỗ lực
không thành công để đăng nhập vào nhóm couchbase vào năm 2017-03-16 lúc
15:45:27.
Bản ghi này cho thấy một bucket được tạo ra vào năm 2017-03-16 lúc
15:43:35; rằng bucket được đặt tên auditBucket; rằng nó được tạo ra với yêu cầu
truy cập xác thực sasl, và chính sách thu hồi của nó được định nghĩa là value_only,
được tạo bởi Quản trị viên toàn hệ thống của hệ thống.
XLVII
5.2.5. Tạo người dùng
Biểu ghi kiểm tra dưới đây tương ứng với việc tạo ra một người dùng.
Bản ghi này chỉ ra rằng một người dùng tên auditBucketUser2 đã được tạo
ra bởi Quản trị viên đầy đủ vào 2017-03-16 lúc 15:44:32; và rằng người dùng đã
được trao vai trò của ro_admin.
Bản ghi này chỉ ra rằng một chỉ mục FTS có tên def-airportname đã được
tạo hoặc cập nhật vào 201703-16 vào lúc 16:12:36.
6. Mã hóa
Couchbase sử dụng mã hóa để bảo vệ dữ liệu, trong toàn hệ thống.
Mã hóa dữ liệu được sử dụng để ngăn chặn truy cập vào dữ liệu nhạy cảm.
Couchbase Server hỗ trợ mã hóa dữ liệu đang ngừng hoạt động (trên đĩa), trên dây,
và được giữ bởi các ứng dụng. Ngoài ra, nó cung cấp một hệ thống của Secret-
Management, cho phép thông tin thiết yếu cho an ninh và bảo trì của Couchbase
Server chính nó sẽ được lưu trữ dưới dạng mã hoá; và sau đó giải mã và sử dụng
hợp lý tại cluster-startup.
XLVIII
XLIX
6.1. Mã hóa lúc ngừng hoạt động
Mã hoá ở phần còn lại đề cập đến mã hóa dữ liệu nằm trên phương tiện vật
lý. Nó nên được sử dụng để bảo vệ dữ liệu được lưu trữ trên các phương tiện
truyền thông như vậy bởi Couchbase Server.
L
Đường dẫn tập tin chỉ mục Global Secondary Index
- Linux: / opt / couchbase / var / lib / couchbase / data / @ 2i
- Windows: C: \ Program Files \ couchbase \ server \ var \ lib \ couchbase \
data \ @ 2i
Thao tác này sẽ hiển thị màn hình Bảo mật. Khi nó xuất hiện, nhấp chuột
trái vào tab Chứng chỉ gốc, nằm trên thanh điều khiển nằm ngang, phía trên đầu
(lưu ý rằng bạn phải ở trong vai trò của Quản trị viên, để xem và truy cập Chứng
chỉ gốc):
Hình 4. Chọn chứng chỉ gốc trong vai trò Quản trị viên
LII
Thao tác này hiển thị chế độ xem chứng chỉ gốc (Root Certificate View), có
chứa chứng chỉ gốc tự ký, trong một khung cuộn:
Lưu ý rằng chứng chỉ có thể được tái tạo hoặc thay thế, sử dụng API mã hoá
On-the-Wire, hoặc các lệnh CLI để quản lý chứng chỉ.
LIII
6.4. Secret-Management
Secret - Management cung cấp một cách để quản lý các bí mật máy chủ.
Điều này làm tăng tính bảo mật của dữ liệu và có khả năng làm cho nó đáp ứng
yêu cầu tuân thủ dễ dàng hơn.
Quản lý bí mật (đó là tính năng Enterprise Edition của Couchbase Server)
cho phép ghi các bí mật vào đĩa ở định dạng được mã hóa. Bí mật được Couchbase
Server xác định, và bao gồm các mật khẩu và chứng chỉ hệ thống thiết yếu.
Couchbase sử dụng thuật toán AES 256-bit ở chế độ GCM, để mã hóa bí mật bằng
cách sử dụng một hệ thống phân cấp mã hóa; như thể hiện trong minh hoạ sau:
LIV
Kết luận
Chúng ta đã đề cập đến rất nhiều trong những vấn đề chung, cần phải nhận
thức được để đưa ra quyết định trong thế giới mới của cơ sở dữ liệu NoSQL. Bây
giờ là lúc để nói về lý do tại sao chúng ta sẽ chọn cơ sở dữ liệu NoSQL. Dưới đây
là một số lý do để xem xét việc sử dụng các cơ sở dữ liệu NoSQL.
- Để cải thiện năng suất lập trình bằng cách sử dụng một cơ sở dữ liệu phù
hợp hơn với nhu cầu của ứng dụng.
- Để cải thiện hiệu suất truy cập dữ liệu thông qua một số sự kết hợp xử lý
khối lượng dữ liệu lớn hơn, giảm độ trễ, và cải thiện thông.
LV
Tài liệu tham khảo
- https://developer.couchbase.com/documentation/server/5.0/introduction/wha
ts-new.html
- https://en.wikipedia.org/wiki/Couchbase_Server
LVI