intTypePromotion=3

Bổ sung các khả năng an toàn mới trong DB2 9.5, Phần 1: Hiểu rõ các vai trò trong DB2 9.5

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:48

0
63
lượt xem
4
download

Bổ sung các khả năng an toàn mới trong DB2 9.5, Phần 1: Hiểu rõ các vai trò trong DB2 9.5

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầ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ò (role) 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...

Chủ đề:
Lưu

Nội dung Text: Bổ sung các khả năng an toàn mới trong DB2 9.5, Phần 1: Hiểu rõ các vai trò trong DB2 9.5

  1. Bổ sung các khả năng an toàn mới trong DB2 9.5, Phần 1: Hiểu r õ các vai trò trong DB2 9.5 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ò (role) 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à các vai trò trong 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 Về hướng dẫn này Hướng dẫn này sẽ dẫn dắt bạn qua một loạt các bài tập để làm quen với các vai trò, một đặc tính mới trong DB2 9.5. Hướng dẫn này dành cho các chuyên gia kỹ thuật DB2, các quản trị viên cơ sở dữ liệu, và các lập trình viên. Bạn phải có hiểu biết tốt về DB2 trên Linux, UNIX, và Windows (sau đây gọi là DB2 LUW). Bạn cũng cần phải quen thuộc với cửa sổ lệnh DB2 và việc chạy các kịch bản lệnh DB2. Sử dụng Data Studio IBM mới, bạn có thể tạo và quản lý các vai trò. Tuy nhiên, chúng không được hỗ trợ trong trung tâm điều khiển DB2. Các mục tiêu Hướng dẫn này sẽ 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 vai trò trong DB2 9.5. Trong các bài tập này, bạn sẽ tìm hiểu về: Các khái niệm cơ bản về vai trò  Cách tạo và quản lý các vai trò 
  2. Cách sử dụng các truy vấn SQL và các công cụ khác nhau để phân tích  cách dùng các vai trò Các yêu cầu về hệ thống Để chạy các ví dụ trong hướng dẫn này, bạn cần bạn cần có: 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 của DB2 9.5.) 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 vai trò Một vai trò là một đối tượng cơ sở dữ liệu và có thể cấp hay hủy bỏ một hoặc nhiều quyền ưu tiên (privileges), quyền hành động (authorities) hoặc các vai trò DB2 khác đối với nó. Một vai trò không có chủ sở hữu và chỉ có người quản trị an toàn (SECADM) có thể tạo ra hay hủy bỏ nó.
  3. Bằng cách gắn kết một vai trò với một người sử dụng, người sử dụng này sẽ thừa hưởng tất cả các quyền ưu tiên do vai trò đó nắm giữ, ngoài các quyền anh ta đã có. Lợi thế chủ yếu của các vai trò cơ sở dữ liệu là ở chỗ chúng đơn giản hóa việc quản trị và quản lý các quyền trong một cơ sở dữ liệu. Ví dụ: Những người quản trị an toàn có thể kiểm soát truy nhập vào các cơ sở dữ  liệu của họ ở một mức trừu tượng gần với cấu trúc của các tổ chức của họ. Ví dụ, nếu công ty có 12 chi nhánh và mọi người trong từng chi nhánh có một tập hợp của các quyền giống nhau, thì SECADM sẽ thiết lập 12 vai trò và sau đó cấp phát tư cách thành viên cho những người sử dụng dựa vào vị trí của họ. Những người sử dụng được cấp phát tư cách thành viên trong các vai trò  dựa vào các trách nhiệm công việc của họ. Khi các trách nhiệm công việc của người sử dụng thay đổi, việc này thường hay xảy ra trong các tổ chức lớn, tư cách thành viên của anh ta có thể dễ dàng được cấp phát và hủy bỏ. Ví dụ, nếu một người sử dụng chuyển từ chi nhánh New York đến chi nhánh Boston, thì SECADM chỉ cần đơn giản hủy bỏ quyền truy nhập của anh ta tới vai trò với New York và cấp phép truy nhập tới vai trò với chi nhánh Boston. Việc phân định các quyền cũng được đơn giản hóa. Thay vì cấp phát tập  hợp các quyền giống nhau cho từng người dùng riêng lẻ trong một chức năng công việc cụ thể, thì người quản trị có thể cấp phát tập hợp các quyền này cho một vai trò đại diện cho chức năng công việc đó và sau đó cấp phát vai trò này cho những người sử dụng có chức năng công việc đó. Ví dụ, các công việc riêng lẻ có thể thường yêu cầu nhiều quyền khác nhau cho một người sử dụng. Tuy nhiên, nếu cấp phát các quyền cho một vai trò thì sẽ đơn giản hơn khi cấp phát hay hủy bỏ các quyền đó và không phải duy trì các kịch bản lệnh lớn cho từng công việc. Nếu SECADM cần thay đổi các quyền cho một vai trò , anh ta có thể thay đổi nó ở một nơi thôi, không phải lặp lại tiến trình này với mọi người sử dụng. Các vai trò có thể được cập nhật mà không cần cập nhật các quyền cho mỗi  người sử dụng một cách riêng lẻ. Ví dụ, nếu SECADM cần thay đổi các quyền cho chi nhánh ở New York, SECADM có thể thay đổi định nghĩa của vai trò mà không phải lặp lại tiến trình này với mọi người sử dụng. Tất cả các quyền ưu tiên và quyền hành động của DB2 có thể cấp trong một cơ sở dữ liệu, trừ SECADM, đều có thể được cấp phát cho một vai trò. Bằng cách cấp phát các quyền ưu tiên và quyền hành động chỉ cho các vai trò và cho người sử
  4. dụng làm thành viên trong các vai trò đó, việc quản trị và quản lý các quyền trong cơ sở dữ liệu được đơn giản hóa rất nhiều. Xây dựng môi trường 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. Dữ liệu cần thiết để điền vào các bảng có trong một tệp tin ASCII dùng dấu phân cách (delimited) trong thư mục con DB2Roles có tên là data.del. Tất cả các kịch bản lệnh 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 kịch bản bó lệnh (có đuôi .bat) có thể chạy khi gõ tên vào cửa sổ này. 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 nào cho nhóm. 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.
  5. 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 1. 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 vai trò. 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 vai trò 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 với tư cách 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
  6. 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;
  7. 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 tin nạp vào. 7. Để hoàn thành công việc cài đặt, 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. 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ũng có thể 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. Cài đặt và cấu hình các vai trò Trong phần này, bạn sẽ tìm hiểu cách để : Tạo ra các vai trò mới  Gán các quyền cho một vai trò  Cấp tư cách vai trò cho các thành viên  Quyền hành động để quản lý thành viên trong một vai trò được trao cho SECADM. SECADM sử dụng các lệnh DML tiêu chuẩn để quản lý các vai trò. Tất cả các lệnh DML để sử dụng với các vai trò có thể được nhúng vào trong một chương trình ứng dụng hay được đưa ra thông qua việc sử dụng các lệnh SQL động. Đó là một lệnh khả thi có thể chuẩn bị động chỉ khi hành vi chạy DYNAMICRULES có hiệu lực đối với gói đó. Lệnh CREATE ROLE định nghĩa một vai trò tại một máy chủ hiện tại. vai trò phải có một tên nhận diện duy nhất: CREATE ROLE *role-name* Lệnh DROP ROLE xóa bỏ một vai trò ở một máy chủ hiện tại, vai trò phải đã tồn tại ở máy chủ hiện tại, và vai trò không thể bị xóa nếu nó hiện đang sử dụng như một thuộc tính kết nối (SESSION_USER) hay như một bối cảnh tin cậy. Chỉ SECAM mới có thể loại bỏ một vai trò. DROP ROLE *role-name*
  9. Lệnh GRANT và REVOKE ROLE được sử dụng để cấp phát hay hủy bỏ các vai trò cho những người sử dụng, các nhóm hay cho các vai trò khác. Các lệnh này có thể cũng được dùng để ủy quyền bằng WITH ADMIN OPTION. WITH ADMIN OPTION cho phép người được ủy quyền (chỉ rõ ID) được quyền hành động cấp phát hay hủy bỏ vai trò (chỉ rõ tên) cho/khỏi người khác.Ví dụ: Liệt kê lệnh 3. Cấp hay hủy bỏ vai tr ò cho/khỏi người khác GRANT ROLE *role-name* TO *authorization-name* GRANT ROLE *role-name* TO *authorization-name* WITH ADMIN OPTION REVOKE ROLE *role-name* FROM *authorization-name* REVOKE ADMIN OPTION FOR ROLE *role-name* FROM *authorization-name* Lệnh COMMENT ON có thể được dùng để mô tả về ROLE trong các tài liệu hệ thống. Ví dụ: COMMENT ON ROLE *role-name* IS *'comment'*
  10. Các kịch bản lệnh cần thiết cho phần này có trong thư mục con Section3 của phần tải xuống có sẵn. Tất cả các khung nhìn danh mục hệ thống có trình bày chi tiết về những người sử dụng hay các nhóm đã được cập nhật để có các vai trò mới. Có hai khung nhìn mới trong DB2 9.5 cho thấy các chi tiết của các vai trò: 1. SYSCAT.ROLES: Khung nhìn này có một hàng cho mỗi vai trò đã định nghĩa. Nó có chứa các mã nhận diện (ID) của vai trò, cộng thêm ngày tháng tạo thành và thông tin chính sách kiểm toán đi kèm. 2. SYSCAT.ROLEAUTH: Khung nhìn này có một hàng cho mỗi người sử dụng, mỗi nhóm hay mỗi vai trò đã được cấp quyền hành động đối với một vai trò và thông tin liệu họ đã ủy quyền về vai trò đó chưa.. Để đơn giản hóa việc quản trị các vai trò, có một hàm hệ thống, được là hàm AUTH_LIST_ROLES_FOR_AUTHID, cho phép người quản trị có khả năng kiểm tra xem những vai trò nào đã được cấp cho một người sử dụng, một nhóm hay một vai trò. (Hàm này sẽ được mô tả và làm rõ trong phần sau, "Maintain and manage roles" (Duy trì và quản lý các vai trò ). Vai trò đơn giản là một đối tượng cơ sở dữ liệu có thể được sử dụng để định nghĩa các quyền hạn đối với các đối tượng cơ sở dữ liệu khác như các bảng, các khung nhìn, các trigger, và các bối cảnh tin cậy. Có thể gán cho những người sử dụng một vai trò để cho phép họ truy nhập dữ liệu bên trong cơ sở dữ liệu đó. Trong hướng dẫn này, bạn sẽ học cách tạo ra một hệ phân cấp các vai trò, đồng nhất với cấu trúc của công ty nhỏ, như được minh họa trong Hình1. Bạn sẽ tạo ra các vai trò cơ sở sau đây : Sales: Cho phòng bán hàng  Mktg: Cho phòng tiếp thị  Admin: Cho phòng quản lý  Payroll: Cho phòng tiền lương  Pension: Cho Yang, người quản lý trợ cấp  SalesMgr: Để chứa các vai trò Sales và Mktg  AdminMgr: Để chứa các vai trò Admin và Payroll 
  11. CEO: Để chứa các vai trò AdminMgr và SalesMgr  Các hướng dẫn Đăng nhập vào hệ thống của bạn bằng userid của người quản trị an toàn và mật khẩu được bạn tạo ra trong phần trước. Thay đổi thư mục hiện tại đến Section3. 1. Tạo ra các vai trò cơ sở, sử dụng mã lệnh sau Liệt kê lệnh 4. Tạo ra 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; 2. hoặc sử dụng kịch bản lệnh CreateRoles.sql để tạo ra các vai trò.
  12. Bảng Privileges , (Các quyền) dưới đây cho thấy các quyền được cấp cho các vai trò: Table 1. Privileges Vai trò Các quyền Các bảng SELECT LE_ORG, LE_SALES Sales UPDATE, INSERT LE_SALES Mktg SELECT LE_ORG, LE_SALES LE_DEPARTMENT, LE_EMPLOYEE, SELECT LE_ORG, LE_SALES Admin UPDATE LE_EMPLOYEE, LE_DEPARTMENT LE_DEPARTMENT, LE_EMPLOYEE, SELECT LE_EMP_PHOTO, LE_EMP_RESUME, LE_PENSIONS UPDATE, INSERT, Payroll LE_EMPLOYEE DELETE SELECT, UPDATE, PensionINSERT, DELETE, LE_PENSIONS ALTER 3.
  13. 4. Cấp các quyền cho các vai trò bằng các lệnh sau đây: Liệt kê lệnh 5. 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; GRANT SELECT ON TABLE db2inst1.le_pensions TO ROLE Payroll; GRANT UPDATE, INSERT, DELETE ON TABLE db2inst1.le_employee TO ROLE Payroll; GRANT SELECT, UPDATE, INSERT, DELETE, ALTER ON TABLE db2inst1.le_pensions
  14. TO ROLE Payroll; 5. hoặc sử dụng kịch bản lệnh AssignRoles.sql để tạo ra các vai trò . Bây giờ bạn cần đặt các cá nhân vào trong các vai trò tương ứng của họ. 6. Cấp tư cách thành viên của các vai trò bằng các lệnh sau đây: Liệt kê lệnh 6. Cấp tư cách thành viên của các vai trò GRANT ROLE SalesMgr, AdminMgr to ROLE CEO; GRANT ROLE CEO TO USER Mark; GRANT ROLE Admin, Payroll to ROLE AdminMgr; GRANT ROLE AdminMgr TO USER Ally; GRANT ROLE Sales, Mktg to ROLE SalesMgr; GRANT ROLE SalesMgr TO USER Saul; GRANT ROLE Admin TO USER Adam, Debs, Mary; GRANT ROLE Mktg TO USER Mary, Anne, Rose; GRANT ROLE Payroll TO USER Adam, Pete, Yang; GRANT ROLE Pension TO USER Yang;
  15. GRANT ROLE Sales TO USER Stan, Alan, Lori, Evan; 7. hoặc sử dụng kịch bản lệnh AssignUsers.sql để cấp tư cách thành viên ứng với các vai trò . Bây giờ bạn đã có cấu trúc cơ sở, bạn có thể chạy một vài truy vấn để thông qua tính hợp lệ của các quyền ưu tiên và quyền hành động thuộc về những người sử dụng. 8. Nối tới cơ sở dữ liệu SAMPLE với tư cách là Anne, và chạy hai truy vấn: CONNECT TO SAMPLE USER Anne USING password SELECT * FROM db2inst1.le_org SELECT * FROM db2inst1.le_employee 9. hoặc sử dụng kịch bản lệnh AnneQueries.sql để chạy các truy vấn. Lệnh SELECT từ bảng ORG sẽ làm việc, nhưng Anne không thể truy nhập bảng EMPLOYEE do Anne chỉ có trong vai trò MKTG. Kết quả đưa ra cần phải giống như sau: Liệt kê lệnh 7. Kết quả truy vấn CONNECT TO SAMPLE USER Anne USING Database Connection Information
  16. Database server = DB2/NT 9.5.0 SQL authorization ID = ANNE Local database alias = SAMPLE SELECT * FROM db2inst1.le_org DEPTNUMB DEPTNAME MANAGER DIVISION LOCATION -------- -------------- ------- ---------- ------------- C21 Head Office C01 Corporate London C21 Eastern C01 Finance Vienna C21 Western C01 Finance Paris . . . 9 record(s) selected. SELECT * FROM db2inst1.le_employee SQL0551N "ANNE" does not have the privilege to perform operation
  17. "SELECT" on object "DB2INST1.LE_EMPLOYEE". SQLSTATE=42501 10. 11. Thay đổi người sử dụng thành Mary và lặp lại các truy vấn: CONNECT TO SAMPLE USER Mary USING password SELECT * FROM db2inst1.le_org SELECT * FROM db2inst1.le_employee 12. Cả hai truy vấn đều làm việc với Mary bởi vì Mary có trong cả vai trò MKTG lẫn vai trò ADMIN. Vì thế, bạn sẽ có khả năng xem nội dung của bảng le_employee (xem Liệt kê lệnh 8). 13. Nối tới cơ sở dữ liệu SAMPLE với tư cách là Debs, và chạy hai truy vấn: CONNECT TO SAMPLE USER Debs USING password SELECT * FROM db2inst1.le_employee SELECT * FROM db2inst1.le_pensions 14. hoặc sử dụng kịch bản lệnh DebsQueries.sql để thực hiện các truy vấn. Lệnh SELECT từ bảng EMPLOYEE sẽ làm việc, nhưng Debs không thể truy nhập bảng PENSIONS vì Debs chỉ có trong vai trò Admin (xem Liệt kê lệnh 9). 15. Thay đổi người sử dụng thành Adam, và lặp lại các truy vấn:
  18. CONNECT TO SAMPLE USER Adam USING password SELECT * FROM db2inst1.le_employee SELECT * FROM db2inst1.le_pensions 16. Cả hai truy vấn làm việc với Adam bởi vì Adam có trong các vai trò AYROLL và ADMIN. Vì vậy bạn có thể xem bảng le_pensions (xem Liệt kê lệnh 10). 17. Một lựa chọn khác, thay đổi người sử dụng thành Mark (có vai trò CEO). Mark có thể thực hiện tất cả các truy vấn. Duy trì và quản lý các vai trò Chỉ riêng trong hướng dẫn này, thật khó nhận thấy các lợi ích của các vai trò trong việc điều hành một cơ sở dữ liệu. Tuy nhiên, nếu bạn quan sát một công ty lớn với hàng nghìn nhân viên trong hàng trăm vai trò, các lợi ích trở nên rõ ràng hơn. Ví dụ, nếu công ty có trung bình 20 đại diện bán hàng ở mỗi chi nhánh, 10 chi nhánh cho mỗi vùng hay bang, và 50 vùng trong cấu trúc bán hàng, tự nhiên bạn có 10.000 đại diện bán hàng và có thể có 1.000 nhân viên có liên quan khác. Trong các phiên bản DB2 trước đây, bạn phải cấp các quyền cho từng người hay phải thỏa hiệp (chấp nhận nguy cơ) về an toàn truy nhập tới dữ liệu. Giả sử bạn có các vai trò khác nhau cho từng chi nhánh, vùng, và có hỗ trợ vai trò; bạn vẫn còn có hơn 500 vai trò. Tuy nhiên, khi một người gia nhập công ty, rời bỏ công ty, hay chuyển vị trí, đó chỉ là đơn giản cấp hay hủy bỏ một vai trò. Nếu bạn giả thiết một tốc độ thay đổi là 5%, thì vẫn còn có trên 500 thay đổi trong một năm. Tuy nhiên, nếu bạn giao quyền quản lý tới các mức vùng hay mức chi nhánh, thì các nhiệm vụ quản lý ở các mức này trở nên dễ dàng hơn. Trong phần này, bạn sẽ xem xét: WITH ADMIN OPTION  Các ảnh hưởng của việc huỷ bỏ các quyền hạn của vai trò  Truy vấn về các quyền thành viên 
  19. Các hướng dẫn Đăng nhập vào hệ thống của bạn bằng userid của người quản trị an toàn và mật khẩu được bạn tạo ra trong phần "Xây dựng môi trường " của hướng dẫn này. Thay đổi thư mục hiện tại thành Section4. Đầu tiên, chúng ta hãy khám phá một số ảnh hưởng của việc hủy bỏ tư cách thành viên của vai trò: 1. Nối tới cơ sở dữ liệu SAMPLE với tên Mary. Thực hiện một phép nối giữa các bảng SALES và EMPLOYEE, và sau đó tạo ra một khung nhìn trên cả hai bảng đó: Liệt kê lệnh 11. Kiểm thử các quyền hạn của Mary CONNECT TO SAMPLE USER Mary USING password SELECT e.firstnme, e.lastname, SUM(s.sales) FROM db2inst1.le_employee e, db2inst1.le_sales s WHERE e.firstnme=s.sales_person GROUP BY e.firstnme, e.lastname CREATE VIEW total_sales (fname, lname, sales) AS SELECT e.firstnme, e.lastname, SUM(s.sales) FROM db2inst1.le_employee e, db2inst1.le_sales s WHERE e.firstnme=s.sales_person GROUP BY e.firstnme, e.lastname 2. hoặc sử dụng kịch bản lệnh Mary01.sql để chạy SQL. Lệnh SELECT cần phải tạo ra một danh sách giao dịch bán theo người bán hàng, và lệnh tạo
  20. khung nhìn sao chép chính xác dữ liệu này như một khung nhìn. Các lệnh này làm việc được vì Mary là một thành viên của các vai trò Admin và Sales. Liệt kê lệnh 12. Các kết quả việc kiểm thử Mary CONNECT TO SAMPLE USER Mary USING Database Connection Information Database server = DB2/NT 9.5.0 SQL authorization ID = MARY Local database alias = SAMPLE SELECT e.firstnme, e.lastname, SUM(s.sales) as Total_Sales FROM db2inst1.le_employee e, db2inst1.le_sales s WHERE e.firstnme=s.sales_person GROUP BY e.firstnme, e.lastname FIRSTNME LASTNAME TOTAL_SALES ------------ --------------- -----------
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản