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ệ
• 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ệ
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:
- bai_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
- 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
- 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/a er 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
- 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
- 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
- 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
- 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/a er 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
- 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 dis nct •Union (trừ par oned 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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 Authen ca on) • Chứng thực của Windows (Windows Authen ca on) (integrated security/ trusted connec on) Chương V : An ninh và An toàn Dữ liệu 38
- 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 Authen ca on 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
- Quản lý quyền người dùng Chương V : An ninh và An toàn Dữ liệu 42
- 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
- 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 authen ca on) 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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 Authen ca on) đều là thành viên của sysadmin. Chương V : An ninh và An toàn Dữ liệu 62
- 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
- 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
- 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_func on } } TO security_account [ , n ] [ WITH GRANT OPTION ] [ AS role ] Chương V : An ninh và An toàn Dữ liệu 68
- 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
- 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
- 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_func on } } TO security_account [ , n ] [CASCADE] Chương V : An ninh và An toàn Dữ liệu 74
- 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
- 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_func on } } FROM security_account [ , n ] [CASCADE] [ AS role ] Chương V : An ninh và An toàn Dữ liệu 78
- 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