Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 5: An ninh và an toàn dữ liệu - Tuấn Nguyên Hoài Đức

Tìm hiểu thêm về Trigger
• Khung nhìn
• Quản trị quyền người dùng
• Tổng quan
• Chi ,ết
• Sao lưu và phục hồi dữ liệ 
pdf 80 trang xuanthi 30/12/2022 320
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 5: An ninh và an toàn dữ liệu - Tuấn Nguyên Hoài Đức", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_he_quan_tri_co_so_du_lieu_chuong_05_an_ninh_va_an.pdf

Nội dung text: Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 5: An ninh và an toàn dữ liệu - Tuấn Nguyên Hoài Đức

  1. Nội dung trình bày • Tìm hiểu thêm về Trigger • Khung nhìn • Quản trị quyền người dùng • Tổng quan • Chi ết • Sao lưu và phục hồi dữ liệu Chương V : An ninh và An toàn Dữ liệu 2
  2. Tìm hiểu thêm về trigger • Lưu ý: •Lệnh tạo trigger phải là lệnh đầu ên trong một query batch •Trên một bảng có thể định nghĩa nhiều trigger for/aer cho mỗi thao tác • nhưng chỉ có thể định nghĩa một trigger instead of cho mỗi thao tác Chương V : An ninh và An toàn Dữ liệu 4
  3. Nội dung trình bày • Tìm hiểu thêm về Trigger • Khung nhìn • Quản trị quyền người dùng • Tổng quan • Chi ết • Sao lưu và phục hồi dữ liệu Chương V : An ninh và An toàn Dữ liệu 6
  4. Khung nhìn • Mục đích sử dụng: •Thể hiện dữ liệu ở dạng phù hợp với từng nhóm nghiệp vụ/ nhóm NSD. •Bảo mật dữ liệu(security). Chương V : An ninh và An toàn Dữ liệu 8
  5. Khung nhìn • Cú pháp: Gắn kết view với lược đồ, khi đó: Create view view_name •Không thể xóa bảng hay view khác có liên quan đến định nghĩa của view có [(column_name [ , n ])] schemabinding [With Schemabinding] •Không thể thay đổi cấu trúc bảng/ view nếu việc thay đổi này ảnh hưởng đến As định nghĩa view có schemabinding •Câu select định nghĩa view phải chỉ select_statement định rõ thuộc tính (không được select * ) •Các tên bảng, view trong câu select phải được viết dưới dạng owner.Tênbảng/Tênview •Nếu view schemabinding định nghĩa trên một view khác, view đó cũng phải ở dạng schemabinding. Chương V : An ninh và An toàn Dữ liệu 10
  6. Khung nhìn • Lưu ý : • Lệnh select trong định nghĩa view không được chứa: • Order by, nếu có phải kèm với TOP • Compute/ compute by • Select into • Không thể gắn kết rule hay default vào view • Không thể khai báo trigger for/aer trên view (chỉ có thể khai báo trigger instead of) • Một view có thể được định nghĩa trên một view khác, nhưng không quá 32 cấp Chương V : An ninh và An toàn Dữ liệu 12
  7. Khung nhìn • View chỉ có thể được cập nhật (insert/ update/ delete) nếu: • lệnh select định nghĩa view không chứa: •Các hàm tổng hợp (count, sum, avg, max, ) •Group by,Top, select disnct •Union (trừ paroned view) •Cột dẫn suất (nh toán từ các cột dữ liệu thật sự) (trong một số trường hợp có thể xóa được) Chương V : An ninh và An toàn Dữ liệu 14
  8. Khung nhìn • Ví dụ: Các view định nghĩa như sau không thể cập nhật được: • Create view V_SoNV As Select MaPhong, Count (*) as SoNV From NhanVien Group by MaPhong • Create View V_NhanVien As select MaNV, HoNV + ‘ ‘ +TenNV as HoTen From NhanVien • Create View V1 As select getdate() as NgayHienHanh Có thể xóa Chương V : An ninh và An toàn Dữ liệu 16
  9. Khung nhìn create trigger tr_Ins_View_NV on V_NhanVien instead of insert as insert into NhanVien (MaNV, HoNV, TenNV) select MaNV, le(TenNV, charindex(' ',TenNV)), right(TenNV,len(TenNV) - CharIndex(' ',TenNV)) from inserted go Chương V : An ninh và An toàn Dữ liệu 18
  10. Khung nhìn •Thay đổi cấu trúc view: Thay từ khóa create trong các lệnh tạo view bằng từ khóa alter •Xóa view Drop view tên_view_cần _xóa [, n] Chương V : An ninh và An toàn Dữ liệu 20
  11. Tổng quan SQL Server Data Base Tài khoản chứng thực (Login) Chương V : An ninh và An toàn Dữ liệu 22
  12. Tổng quan A Tài khoản Người dùng B Tài khoản Người dùng C Tài khoản chứng thực Data (Login) Base D Tài khoản Người dùng Chương V : An ninh và An toàn Dữ liệu 24
  13. Tổng quan Vai trò Data Base Tài khoản Người dùng Chương V : An ninh và An toàn Dữ liệu 26
  14. Tổng quan •Bảng DL •Thuộc tính •Bộ •Ràng buộc •Khóa chính •Khóa ngoại Vai trò Data •Check Base •Unique •Default Tài khoản •Thủ tục TT Người dùng •Hàm người dùng •Luật Chương V : An ninh và An toàn D•ữ liệu 28
  15. Tổng quan Quyền Data Base Quyền thực Quyền thao tác hiện lệnh Đối tượng Chương V : An ninh và An toàn Dữ liệu 30
  16. Tổng quan •Deny Quyền Quyền •Deny Quyền N •Deny Chương V : An ninh và An toàn Dữ liệu 32
  17. Tổng quan •Revoke •Revoke Quyền Quyền Quyền •Revoke Chương V : An ninh và An toàn Dữ liệu 34
  18. Nội dung trình bày • Tìm hiểu thêm về Trigger • Khung nhìn • Quản trị quyền người dùng • Tổng quan • Chi ết • Sao lưu và phục hồi dữ liệu Chương V : An ninh và An toàn Dữ liệu 36
  19. Quản lý quyền người dùng • Khái niệm chứng thực: • Xác nhận xem một tài khoản truy cập (login) có hợp lệ không (có được phép kết nối với SQL server hay không) • Các chế độ chứng thực: • Chứng thực của SQL Server (SQL Server Authencaon) • Chứng thực của Windows (Windows Authencaon) (integrated security/ trusted connecon) Chương V : An ninh và An toàn Dữ liệu 38
  20. Quản lý quyền người dùng • Chứng thực của Windows : Cấp phép cho các người dùng của Windows được kết nối đến SQL Server. • Windows quản lý các tài khoản của người dùng và thực hiện việc chứng thực khi người dùng đăng nhập vào Windows • Khi người dùng kết nối đến SQL Server sử dụng chế độ Window Authencaon SQL Server chỉ xét xem người dùng này của Windows đã được cấp phép vào SQL Server hay chưa. • Admin của hệ điều hành mà SQL Server đang chạy trên đó luôn được phép vào SQL Server với quyền sysadmin. Chương V : An ninh và An toàn Dữ liệu 40
  21. Quản lý quyền người dùng Chương V : An ninh và An toàn Dữ liệu 42
  22. Quản lý quyền người dùng • Login: • Tài khoản mà người sử dụng dùng để kết nối với SQL Server • Một login có thể có quyền truy cập vào 0-n database • Trong mỗi database, login ứng với một user • User: • Một “người dùng” trong một database cụ thể • Một user ứng với một login Chương V : An ninh và An toàn Dữ liệu 44
  23. Quản lý quyền người dùng • Login được cấp và quản lý bởi quản trị hệ thống hoặc quản trị an ninh của SQL Server (sysadmin/ securityadmin) • Lệnh tạo login (SQL Server authencaon) sp_addlogin [ @loginame = ] ‘login_name’ [ , [ @passwd = ] 'password' ] [ , [ @defdb = ]‘default_database’ ] Ví dụ : exec sp_addlogin ‘Nam’, ’hehe’,’QLSV’ Chương V : An ninh và An toàn Dữ liệu 46
  24. Quản lý quyền người dùng • Một số thủ tục liên quan • sp_password: đổi password của login • sp_defaultdb: đổi database mặc định của login • sp_droplogin: xóa login đã cấp bằng thủ tục sp_addlogin • sp_revokelogin: lấy lại quyền truy cập đã cấp cho một người dùng/ nhóm người dùng của Windows bằng thủ tục sp_grantlogin Chương V : An ninh và An toàn Dữ liệu 48
  25. Quản lý quyền người dùng • Một số thủ tục liên quan • Hủy quyền của login • Lấy lại quyền truy cập đã cấp cho một người dùng/ nhóm người dùng của Windows bằng thủ tục sp_grantlogin • Cú pháp: • sp_revokelogin [@loginame=] ‘login’] • Ví dụ: • exec sp_revokelogin ‘login_name’ Chương V : An ninh và An toàn Dữ liệu 50
  26. Quản lý quyền người dùng • Đổi database mặc định của login • Áp dụng cho login đã được ánh xạ vào một user trong CSDL đã khai báo mặc định. • Cú pháp: • sp_defaultdb [@loginame =] ‘login_name’, [@defdb=] ‘database_name’ • Ví dụ: • exec sp_defaultdb ‘login_name’, ‘QLSV’ Chương V : An ninh và An toàn Dữ liệu 52
  27. Quản lý quyền người dùng • Ví dụ • exec sp_grantdbaccess ‘Nam’, ‘dev01’ • exec sp_grantdbaccess ‘Server01\user01’, ‘dev02’ Chương V : An ninh và An toàn Dữ liệu 54
  28. Quản lý quyền người dùng • Xóa user khỏi database hiện hành • Cú pháp sp_revokedbaccess ‘user_name’ • Ví dụ: exec sp_revokedbaccess ‘dev02’ Chương V : An ninh và An toàn Dữ liệu 56
  29. Quản lý quyền người dùng • Sau khi tạo user: user có quyền truy cập vào database, nhưng chưa được thao tác gì (đọc, cập nhật, ) trên các đối tượng trong database. à Cần gán những quyền cụ thể cho từng user của database • Nếu nhiều user cần được cấp cho một số quyền giống nhau: à Tạo role, gán các quyền cho role, user cần các quyền này sẽ là thành viên của role Chương V : An ninh và An toàn Dữ liệu 58 58
  30. Quản lý quyền người dùng • Người dùng có thể định nghĩa các vai trò mới cho database hiện hành • Cú pháp sp_addrole [ @rolename = ] 'role' [ , [ @ownername = ] 'owner' ] (thủ tục sp_addrole chỉ có thể thực hiện bởi thành viên của sysadmin, db_owner, db_securityadmin) Chương V : An ninh và An toàn Dữ liệu 60
  31. Quản lý quyền người dùng • Thêm một login vào các vai trò hệ thống có sẵn: • Cú pháp: sp_addsrvrolemember [ @loginame = ] 'login' ,[ @rolename = ] 'role’ • Ví dụ: exec sp_addsrvrolemember ‘tnhduc’, ‘sysadmin’ • Ghi chú: Khi mới cài đặt, SQL Server định nghĩa sẵn login sa, sa và các login là administrator của Windows (Windows Authencaon) đều là thành viên của sysadmin. Chương V : An ninh và An toàn Dữ liệu 62
  32. Quản lý quyền người dùng • Các Server role Chương V : An ninh và An toàn Dữ liệu 64
  33. Quản lý quyền người dùng • Sử dụng lệnh “Grant ” để cấp quyền cho user / role • Có hai dạng: • Cấp quyền thực hiện lệnh (create database, create procedure, create table, ) • Cấp quyền thao tác trên các đối tượng trong CSDL (đọc/ ghi trên table/view, thực hiện thủ tục, ) Chương V : An ninh và An toàn Dữ liệu 66
  34. Quản lý quyền người dùng • Cấp quyền thao tác trên đối tượng : • Cú pháp GRANT { ALL | permission [ , n ] } { [ ( column [ , n ] ) ] ON { table | view } | ON { table | view } [ ( column [ , n ] ) ] | ON { stored_procedure} | ON { user_defined_funcon } } TO security_account [ , n ] [ WITH GRANT OPTION ] [ AS role ] Chương V : An ninh và An toàn Dữ liệu 68
  35. Quản lý quyền người dùng • Ví dụ 1: Grant select, update on SinhVien (HoTen, DiaChi, NgaySinh) to Developer Nhưng Thành viên của không Developer có được cấp quyền select, quyền này update trên các cho user cột HoTen, DiaChi khác và NgaySinh của bảng SinhVien Chương V : An ninh và An toàn Dữ liệu 70
  36. Quản lý quyền người dùng • Dùng Deny để thu hồi quyền của một user/role • Khi một user/role bị thu hồi một quyền, nó sẽ không được thừa hưởng quyền này dù là thành viên của một role có quyền đó • Cú pháp: Có hai dạng tương tự như Grant: • Thu hồi quyền thực hiện lệnh • Thu hồi quyền thao tác trên đối tượng Chương V : An ninh và An toàn Dữ liệu 72
  37. Quản lý quyền người dùng • Thu hồi quyền thao tác trên đối tượng • Cú pháp DENY { ALL | permission [ , n ] } { [ ( column [ , n ] ) ] ON { table | view } | ON { table | view } [ ( column [ , n ] ) ] | ON { stored_procedure} | ON { user_defined_funcon } } TO security_account [ , n ] [CASCADE] Chương V : An ninh và An toàn Dữ liệu 74
  38. Quản lý quyền người dùng • Dùng revoke để lấy lại quyền đã cấp hoặc bỏ đi việc thu hồi quyền trên user/role • Nếu user/ role được cấp (grant) một quyền, revoke quyền này sẽ làm mất hiệu lực của lệnh grant trước đó • Nếu user/ role đang bị thu hồi (deny) một quyền, lệnh revoke quyền này trên user/ role cũng gỡ bỏ đi hiệu lực của lệnh deny đó • Có hai dạng tương tự như grant • Quyền thực hiện lệnh • Quyền thực hiện thao tác trên đối tượng Chương V : An ninh và An toàn Dữ liệu 76
  39. Quản lý quyền người dùng • Lấy lại / bỏ thu hồi quyền thao tác đối tượng • Cú pháp REVOKE{ ALL | permission [ , n ] } { [ ( column [ , n ] ) ] ON { table | view } | ON { table | view } [ ( column [ , n ] ) ] | ON { stored_procedure} | ON { user_defined_funcon } } FROM security_account [ , n ] [CASCADE] [ AS role ] Chương V : An ninh và An toàn Dữ liệu 78
  40. Nội dung trình bày • Tìm hiểu thêm về Trigger • Khung nhìn • Quản trị quyền người dùng • Tổng quan • Chi ết • Sao lưu và phục hồi dữ liệu Chương V : An ninh và An toàn Dữ liệu 80