Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
882,09 KB
Nội dung
Bổ sung các khả năng an toàn mới trong DB2 9.5, Phần 2: Hiểu rõ các bối cảnh tin cậy Bảo đảm an toàn cho cơ sở dữ liệu của bạn Paul Read, Giám đốc giới thiệu sản phẩm của IBM, EMC Tóm tắt: IBM® DB2® 9.5 cung cấp các tùy chọn mới để bảo đảm an toàn chặt chẽ hơn và cho phép các mức độ chi tiết và linh hoạt hơn trong việc quản trị cơ sở dữ liệu. Hướng dẫn này là phần đầu tiên trong hai hướng dẫn nói về các vai trò (roles) và các bối cảnh tin cậy. Hãy làm theo các bài tập trong hướng dẫn này, và tìm hiểu cách tận dụng các đặc tính mới là vai trò của DB2 trong việc phối hợp với các công nghệ e-business cốt yếu khác như các dịch vụ Web, máy chủ ứng dụng Web và máy chủ cơ sở dữ liệu DB2. Trước khi bạn bắt đầu Hướng dẫn Một bối cảnh tin cậy thiết lập một mối quan hệ tin cậy giữa DB2 và một thực thể ngoài, như một máy chủ Web, một máy chủ ứng dụng hay một máy chủ DB2 khác. Trong thời gian kết nối, máy chủ DB2 kiểm tra xem kết nối đã phù hợp với định nghĩa của một đối tượng bối cảnh tin cậy trong cơ sở dữ liệu chưa. Khi đã phù hợp, kết nối cơ sở dữ liệu này được nói là tin cậy. Việc sử dụng các bối cảnh tin cậy cung cấp khả năng kiểm soát lớn hơn, trong khi chỉ sử dụng các quyền ưu tiên nhạy cảm, có hạn chế. Nó cũng cho phép các máy chủ hay các ứng dụng lớp giữa xác định nhận dạng của người sử dụng với máy chủ cơ sở dữ liệu. Để biết thêm thông tin về các bối cảnh tin cậy, xem bài "Sử dụng bối cảnh tin cậy trong các ứng dụng khách của DB2" (developerWorks, 09. 2006). Về hướng dẫn này Hướng dẫn đưa bạn qua một loạt các bài tập để bạn tự làm quen với các bối cảnh tin cậy, một đặc tính mới của DB2 9.5. Hướng dẫn này tiếp theo Phần1 của loạt bài này, trong đó đã nói về các khái niệm và các đặc tính của các vai trò trong DB2. Nó trình diễn cách làm sao để lợi dụng đặc tính mới này của DB2 và cách làm sao để sử dụng các vai trò kết hợp với các công nghệ e-business cốt yếu khác như các dịch vụ Web, máy chủ ứng dụng Web, và máy chủ cơ sở dữ liệu DB2. Các mục tiêu Hướng dẫn này giúp bạn làm quen với các khái niệm và các đặc tính của các bối cảnh tin cậy trong DB2 9.5. Trong các bài tập này, hãy tìm hiểu: 1. Các khái niệm cơ bản về các bối cảnh tin cậy 2. Làm sao để tạo ra và quản lý một bối cảnh tin cậy 3. Làm sao để sử dụng các bối cảnh tin cậy trong một chương trình mẫu 4. Cơ sở về xác định vấn đề Các điều kiện cần có trước Hướng dẫn được viết cho các chuyên gia DB2 có kỹ năng và kinh nghiệm ở mức bắt đầu tới mức trung cấp. Bạn cần phải quen thuộc với việc sử dụng một dòng lệnh DB2, lập trình CLI, và có kiến thức thực tế về quản lý cơ sở dữ liệu. Các yêu cầu về hệ thống Để thực hiện các ví dụ trong hướng dẫn này, bạn cần có các chương trình: DB2 9.5 Express-C Microsoft Windows 2003, XP hay Linux (môi trường đã hợp lệ) Phiên bản Java® Runtime Environment 1.4.2 hoặc mới hơn Ngoài ra bạn phải bảo đảm phần cứng của mình đáp ứng được các yêu cầu chạy DB2 9.5. (Xem trang Các yêu cầu hệ thống.) Bản tải về DB2 9.5 Express-C có sẵn trong đường liên kết ở trên. DB2 9.5 là một bản cài đặt đầy đủ, không phải là bản vá lỗi nâng cấp. Theo mặc định, DB2 sẽ tự động khởi động sau khi cài đặt trừ khi bạn cài đặt nó không khởi động tự động. Sử dụng các kịch bản lệnh và dữ liệu mẫu có trong tệp tin nén kèm theo (xem phần Tải về) để giải thích các khái niệm trong hướng dẫn này. Giải nén tệp tin, chứa các nội dung vào trong một thư mục con có tên là DB2Roles (C:\DB2Roles hay home/userid/DB2Roles). Thư mục này sẽ được nói đến với tên đơn giản là DB2Roles, xuyên suốt toàn bộ hướng dẫn này. Hướng dẫn này cũng giả thiết rằng bạn sử dụng các thư mục mặc định trong khi cài đặt DB2 và yêu cầu bạn tạo ra một số userid (tên nhận dạng người dùng) và tất cả các bài tập sẽ sử dụng các userid được tạo ra này. Định nghĩa một bối cảnh tin cậy Các bối cảnh tin cậy giới thiệu khái niệm về các quyền ưu tiên nhạy bối cảnh (context-sensitive). Các quyền ưu tiên cảm bối cảnh cho phép một tổ chức có quyền kiểm soát nhiều hơn về việc lúc nào (trong bối cảnh nào) một người sử dụng có một quyền ưu tiên nào đó. Ví dụ, một tổ chức có thể muốn một giám đốc chỉ có khả năng truy nhập vào bảng lương khi giám đốc kết nối tới cơ sở dữ liệu từ bên trong các văn phòng của công ty, nhưng không truy nhập được khi giám đốc kết nối từ nhà. Theo truyền thống, tất cả các tương tác với máy chủ cơ sở dữ liệu xảy ra thông qua một kết nối cơ sở dữ liệu được thiết lập bởi lớp giữa, sử dụng một tổ hợp gồm ID của người sử dụng và một sự uỷ nhiệm, chứng nhận lớp giữa đó với máy chủ cơ sở dữ liệu. Nói cách khác, máy chủ cơ sở dữ liệu sử dụng các quyền cơ sở dữ liệu gắn kết với ID người sử dụng lớp giữa, phục vụ mọi bước kiểm tra cấp phép và kiểm toán tài khoản phải thực hiện trong bất kỳ truy nhập cơ sở dữ liệu nào, bao gồm những truy nhập do lớp giữa thay mặt người sử dụng thực hiện. Hình 1 1 minh họa mô hình ứng dụng có 3 lớp. Mặc dù mô hình ứng dụng 3 lớp có nhiều lợi ích, thì việc tất cả các tương tác với máy chủ cơ sở dữ liệu (ví dụ, một yêu cầu của người sử dụng) xảy ra dưới ID cấp phép của lớp giữa gây ra một số quan ngại về an toàn Hình 1. Mô hình ứng dụng có ba lớp Các khả năng về bối cảnh tin cậy của DB2 được thiết kế đặc biệt để giải quyết các mối quan ngại về an toàn này. Độ an toàn được tăng cường vì nó sử dụng nhận dạng và quyền ưu tiên thực tế của người sử dụng để thực hiện các hoạt động cơ sở dữ liệu. Hiệu năng có thể được nâng cao do không cần có kết nối mới khi bạn chuyển đổi người sử dụng; nếu người sử dụng mới cần phải được xác thực, thì sẽ không có quá tải vì xác thực người sử dụng mới tại máy chủ cơ sở dữ liệu: ID được cấp phép của hệ thống: Đây là ID được cấp phép, đại diện cho người sử dụng thiết lập một kết nối cơ sở dữ liệu. Địa chỉ IP (hay tên miền): Là địa chỉ IP mà từ đó thiết lập kết nối cơ sở dữ liệu . Mật mã hóa luồng dữ liệu: Đây là mức mật mã hóa (nếu có) được dùng để mật mã hóa truyền dẫn dữ liệu giữa máy chủ cơ sở dữ liệu và người sử dụng kết nối đến. Khi một kết nối cơ sở dữ liệu được thiết lập, DB2 so sánh các thuộc tính của kết nối đó với các định nghĩa của từng đối tượng bối cảnh tin cậy trong cơ sở dữ liệu. Nếu các thuộc tính kết nối phù hợp với định nghĩa của một đối tượng bối cảnh tin cậy, kết nối đó được coi như là một kết nối tin cậy. Một kết nối tin cậy cho phép người khởi đầu kết nối đó nhận được các khả năng bổ sung thêm thường không có sẵn, nếu ở ngoài phạm vi kết nối tin cậy đó. Xây dựng môi trường Hướng dẫn này sử dụng khung công tác đã xây dựng trong Phần 1, "Hiểu các vai trò trong DB2 9.5" (developerWorks, 12.2007). Nếu bạn đã hoàn thành Phần 1, tiếp tục đi tới phần "Quản lý bối cảnh tin cậy". Nếu không, bạn cần xây dựng môi trường cơ sở theo chỉ dẫn sau đây. Phần này giới thiệu một số mã lệnh mẫu, có sẵn để tải xuống cùng với hướng dẫn này, để mô tả hành vi của các vai trò. (Xem phần Tải về .) Các mẫu dựa vào các đối tượng cơ sở dữ liệu có thể được bổ sung vào cơ sở dữ liệu SAMPLE. Tất cả các kịch bản lệnh cho phần này nằm trong thư mục con Section 2. Để chạy các kịch bản lệnh trong một cửa sổ lệnh DB2, sử dụng lệnh: db2 –tvf scriptname.sql Các hướng dẫn Đầu tiên, hãy đăng nhập vào hệ thống của bạn bằng userid của người quản trị/userid gốc, rồi tạo ra các userid sau: DB2SEC cho SECADM MARK, ALLY, và SAUL sẽ là nhóm quản lý ADAM, DEBS, PETE, YANG, MARY, và ANNE ROSE, STAN, ALAN, LORI, EVAN, và KLEM Các userid này không cần có bất kỳ các quyền hành động đặc biệt nào do chúng sẽ chỉ được sử dụng với cơ sở dữ liệu DB2; tất cả các quyền ưu tiên và quyền hành động cần thiết sẽ được phát ra bằng SQL. Bạn cũng cần một nhóm có tên là Pension_gp. Đặt Rose vào trong nhóm này. Không thiết lập bất kỳ các quyền hạn nhóm nào. Nếu sử dụng Windows, hãy chắc rằng những người sử dụng trên không nằm trong nhóm Administrators. Sơ đồ sau cho thấy sự phân cấp trong công ty và các vai trò sẽ được sử dụng trong các bài tập.: Hình 2. Cấu trúc của các vai trò Cần chú ý rằng một số tên xuất hiện trong hai hộp vì một số cá nhân có công việc ở cả hai ban và vì thế họ cần có nhiều hơn một role. KLEM là một người mới được tuyển dụng nên anh ta chưa được gán tới một role nào. Trong các bài tập sau đây, DB2inst1 được sử dụng như người quản trị cơ sở dữ liệu DB2 và cơ sở dữ liệu SAMPLE được dùng làm cơ sở dữ liệu. Tất cả các kịch bản lệnh đều sử dụng userid DB2inst1 và một mật khẩu là "password". Bạn phải soạn thảo các kịch bản lệnh khớp với hệ thống của mình nếu bạn sử dụng một cơ sở dữ liệu hay số ID quản trị cơ sở dữ liệu (DBA) khác. Xin kiểm tra xem cơ sở dữ liệu "Sample" hay cơ sở dữ liệu khả dụng khác đã tồn tại chưa. Nếu không, bạn cần sử dụng lệnh DB2SAMPL , để tạo ra cơ sở dữ liệu SAMPLE vì nó được sử dụng xuyên suốt các phần còn lại của hướng dẫn này. Bây giờ, hãy thêm những người sử dụng mới và các bảng mới vào cơ sở dữ liệu cho tập hợp các bài tập này: 1. Thêm những người sử dụng vào cơ sở dữ liệu. 2. Nối đến cơ sở dữ liệu như là DBA và cấp các quyền ưu tiên sau đây: Liệt kê lệnh 1. Cấp các quyền cho những người sử dụng cơ sở dữ liệu GRANT CONNECT ON DATABASE TO USER MARK; GRANT CONNECT ON DATABASE TO USER ALLY; GRANT CONNECT ON DATABASE TO USER ADAM; GRANT CONNECT ON DATABASE TO USER DEBS; GRANT CONNECT ON DATABASE TO USER PETE; GRANT CONNECT ON DATABASE TO USER YANG; GRANT CONNECT ON DATABASE TO USER SAUL; GRANT CONNECT ON DATABASE TO USER MARY; GRANT CONNECT ON DATABASE TO USER ANNE; GRANT CONNECT ON DATABASE TO USER ROSE; GRANT CONNECT ON DATABASE TO USER STAN; GRANT CONNECT ON DATABASE TO USER ALAN; GRANT CONNECT ON DATABASE TO USER LORI; GRANT CONNECT ON DATABASE TO USER EVAN; GRANT SECADM ON DATABASE TO USER DB2SEC; 3. hoặc sử dụng kịch bản lệnh AddUsers.sql để bổ sung thêm những người sử dụng mới. 4. Tạo các bảng mới cho cơ sở dữ liệu SAMPLE bằng kịch bản lệnh luwebase.sql. Nó giả thiết rằng bạn đang đặt các bảng vào trong USERSPACE1. Phần sau đây bổ sung thêm các bảng cơ sở: Liệt kê lệnh 2. Bổ sung thêm các bảng cơ sở LE_DEPARTMENT LE_EMPLOYEE LE_EMP_PHOTO LE_EMP_RESUME LE_ORG LE_SALES LE_PENSIONS 5. 6. Nạp dữ liệu vào trong các bảng mới bằng kịch bản lệnh luweload.sql. Bạn phải soạn thảo kịch bản lệnh cho Linux hoặc khi bạn thay đổi các vị trí của các tệp nạp vào. 7. Hoàn thành công việc cài đặt, hãy chạy kịch bản lệnh luweplus.sql để tạo ra các khung nhìn, các chỉ mục và các đối tượng cơ sở dữ liệu khác bổ sung thêm. 8. Tạo vai trò cơ sở, sử dụng lệnh sau: Liệt kê lệnh 3. Tạo các vai trò cơ sở CREATE ROLE Sales; CREATE ROLE Mktg; CREATE ROLE Admin; CREATE ROLE Payroll; CREATE ROLE Pension; CREATE ROLE SalesMgr; CREATE ROLE AdminMgr; CREATE ROLE CEO; 9. hoặc sử dụng kịch bản lệnh CreateRoles.sql để bổ sung thêm vai trò mới. 10. Cấp quyền cho các vai trò bằng lệnh sau đây: Liệt kê lệnh 4. Cấp các quyền cho các vai trò GRANT SELECT ON TABLE db2inst1.le_org TO ROLE Sales; GRANT SELECT, UPDATE, INSERT ON TABLE db2inst1.le_sales TO ROLE Sales; GRANT SELECT ON TABLE db2inst1.le_org TO ROLE Mktg; GRANT SELECT ON TABLE db2inst1.le_sales TO ROLE Mktg; GRANT SELECT ON TABLE db2inst1.le_department TO ROLE Admin; GRANT SELECT ON TABLE db2inst1.le_employee TO ROLE Admin; GRANT SELECT ON TABLE db2inst1.le_org TO ROLE Admin; GRANT SELECT ON TABLE db2inst1.le_sales TO ROLE Admin; GRANT UPDATE ON TABLE db2inst1.le_department TO ROLE Admin; GRANT UPDATE ON TABLE db2inst1.le_employee TO ROLE Admin; GRANT SELECT ON TABLE db2inst1.le_department TO ROLE Payroll; GRANT SELECT ON TABLE db2inst1.le_emp_photo TO ROLE Payroll; GRANT SELECT ON TABLE db2inst1.le_emp_resume TO ROLE Payroll; [...]... lập xong một "kết nối tin cậy tường minh" Kết luận Các bối cảnh tin cậy là một cách tăng cường an toàn mới được đưa vào trong DB2 9.5 Một bối cảnh tin cậy thiết lập một mối quan hệ tin cậy giữa DB2 và một thực thể ngoài, như một máy chủ Web, một máy chủ ứng dụng hay một máy chủ DB2 khác Việc sử dụng các bối cảnh tin cậy cung cấp khả năng kiểm soát lớn hơn, trong khi chỉ sử dụng các quyền ưu tiên nhạy... bối cảnh tin cậy Xin chú ý rằng chỉ một bối cảnh tin cậy có thể được chỉ rõ cho một authid và bối cảnh tin cậy sẽ không làm việc trên một cơ sở dữ liệu tại chỗ Trong DB2 9.5, bạn có thể tạo ra một đối tượng bối cảnh tin cậy trong cơ sở dữ liệu để định nghĩa một mối quan hệ tin cậy giữa cơ sở dữ liệu và máy chủ ứng dụng lớp giữa Máy chủ ứng dụng lớp giữa sau đó có thể thiết lập một kết nối tin cậy tường... CONTEXT MktgTrustedContext DB20 000I The SQL command completed successfully Chuyển đổi Userid trong các kết nối tin cậy Cách dùng các bối cảnh tin cậy Xin chú ý rằng khả năng chuyển đổi chỉ có thể xảy ra thông qua hoặc một ứng dụng CLI DB2 hoặc một ứng dụng JDBC DB2 DB2 cho phép một kết nối tin cậy đã thiết lập được dùng dưới một ID được cấp phép khác Để cho phép điều này, bối cảnh tin cậy phải được định nghĩa... tài liệu Trong DB2 9.5, có hai khung nhìn danh mục hệ thống mới, SYSCAT.CONTEXTATTRIBUTES và SYSCAT.CONTEXTS, có chứa tất cả thông tin định nghĩa về các bối cảnh tin cậy trong một cơ sở dữ liệu SYSCAT.CONTEXTS liệt kê tất cả các bối cảnh tin cậy đã được tạo ra và cho biết chúng có được phép sử dụng không SYSCAT.CONTEXTATTRIBUTES liệt kê tất cả các thuộc tính cho các bối cảnh tin cậy 1 Để xác minh... Yang; GRANT ROLE Sales TO USER Stan, Alan, Lori, Evan; 13 hoặc sử dụng kịch bản lệnh AssignUsers.sql để cấp tư cách thành viên của các vai trò Xin hãy kiểm tra các lỗi và các cảnh báo khi bạn chạy các kịch bản lệnh SQL Bạn có thể cũng muốn kiểm tra các đối tượng, sử dụng Trung tâm điều khiển hay công cụ khác để xác nhận xem bạn có các bảng và dữ liệu chưa Quản lý bối cảnh tin cậy Cách dùng các bối cảnh. .. sẵn trong tệp tin tải xuống và có thể chạy để thực hiện cùng một hoạt động giống như vậy: o TC - Mã nguồn C o TC.java - Mã nguồn Java Tệp tin tải xuống cũng chứa tất cả các tệp cần thiết để sử dụng chúng Cơ sở về xác định vấn đề Các khung nhìn danh mục của các bối cảnh tin cậy Xin lưu ý rằng userids trong DB2 nhạy kiểu chữ Bởi vậy, bạn phải chỉ rõ chúng bằng chữ hoa khi truy vấn các tài liệu Trong DB2. .. đây địa chỉ IP cho host1 là địa chỉ IP vật lý của máy bạn Chúng ta hãy khám phá cách tạo, thay đổi, và loại bỏ các bối cảnh tin cậy: 1 Nối tới cơ sở dữ liệu bằng userid SECADM (Nếu bạn sử dụng các userid từ Phần 1, thì đó là DB2SEC) Sau đó thử tạo ra bối cảnh tin cậy đầu tiên của bạn: Liệt kê lệnh 6 Tạo bối cảnh tin cậy đầu tiên CREATE TRUSTED CONTEXT MktgTrustedContext BASED UPON CONNECTION USING... tiến hành chuyển đổi Người quản trị an toàn cũng có thể chỉ rõ một vai trò mặc định hay một vai trò thay thế cho mỗi ID cá thể Chúng ta hãy khảo sát kỹ việc sử dụng các bối cảnh tin cậy và khả năng chuyển đổi người sử dụng: 1 Trước khi bạn tạo ra bối cảnh tin cậy cho Ally, hãy nối tới cơ sở dữ liệu SAMPLER với tư cách là Ally, và thử cập nhật bảng LE_PENSIONS: UPDATE DB2INST1.LE_PENSIONS SET BASE=BASE... cụ thể Nếu chỉ rõ là PUBLIC, nó cho phép kết nối tin cậy được sử dụng bởi bất kỳ ID được cấp phép nào Khi một kết nối tin cậy hiển được thiết lập, người khởi đầu kết nối tin cậy như vậy có được khả năng chuyển đổi ID được cấp phép của kết nối này sang một ID được cấp phép khác Những người sử dụng chuyển đổi các bối cảnh tin cậy Sự chuyển đổi ID được cấp phép phải được tiến hành ngoài ranh giới một giao... trong khi chỉ sử dụng các quyền ưu tiên nhạy cảm, có hạn chế Nó cũng cho phép các máy chủ hay các ứng dụng lớp giữa xác định nhận dạng của người sử dụng với máy chủ cơ sở dữ liệu: Khái niệm về các bối cảnh tin cậy Thiết lập, cấu hình và sử dụng các bối cảnh tin cậy Chuyển đổi ID của người sử dụng bên trong các kết nối tin cậy Cơ sở về xác định vấn đề . Bổ sung các khả năng an toàn mới trong DB2 9. 5, Phần 2: Hiểu rõ các bối cảnh tin cậy Bảo đảm an toàn cho cơ sở dữ liệu của bạn Paul Read, Giám. Cách dùng các bối cảnh tin cậy Xin chú ý rằng chỉ một bối cảnh tin cậy có thể được chỉ rõ cho một authid và bối cảnh tin cậy sẽ không làm việc trên một cơ sở dữ liệu tại chỗ. Trong DB2 9. 5,. bản về các bối cảnh tin cậy 2. Làm sao để tạo ra và quản lý một bối cảnh tin cậy 3. Làm sao để sử dụng các bối cảnh tin cậy trong một chương trình mẫu 4. Cơ sở về xác định vấn đề Các điều