Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 80 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
80
Dung lượng
6,14 MB
Nội dung
CHƯƠNG V: AN NINH VÀ AN TOÀN DL GV: TUẤN NGUN HỒI ĐỨC Email: tnhduc@fit.hcmus.edu.vn Nội dung trình bày • Tìm hiểu thêm Trigger • Khung nhìn • Quản trị quyền người dùng • Tổng quan • Chi ,ết • Sao lưu phục hồi liệu Chương V : An ninh An tồn Dữ liệu Tìm hiểu thêm trigger • Xem lại cú pháp khai báo trigger : Create trigger tên_trigger On {tên_bảng|tên_view} {For| A>er| Instead of } { [delete] [,] [insert] [,] [update] } As { lệnh T-sql } go Trigger gọi thực thay cho thao tác delete/ insert/ update tương ứng •Các dịng thêm chứa bảng inserted •Các dịng bị định xố nằm đồng thời bảng deleted bảng liệu (dữ liệu không bị xố) Chương V : An ninh An tồn Dữ liệu Tìm hiểu thêm trigger • Lưu ý: • Lệnh tạo trigger phải lệnh đầu 4ên query batch • Trên bảng định nghĩa nhiều trigger for/aEer cho thao tác… • …nhưng định nghĩa trigger instead of cho thao tác Chương V : An ninh An tồn Dữ liệu Tìm hiểu thêm trigger • Lưu ý: • Không thể định nghĩa trigger instead of update/ delete bảng có cài đặt khố ngoại dạng update cascade/ delete cascade • Trong thân trigger, sử dụng hàm Update(tên_cột) để kiểm tra xem việc cập nhật/ insert thực cột •Update(tên_cột) = true : có thực cập nhật cột tên_cột Chương V : An ninh An toàn Dữ liệu Nội dung trình bày • Tìm hiểu thêm Trigger • Khung nhìn • Quản trị quyền người dùng • Tổng quan • Chi ,ết • Sao lưu phục hồi liệu Chương V : An ninh An tồn Dữ liệu Khung nhìn • Khái niệm : View (khung nhìn) bảng ảo định nghĩa lệnh select • Đối với người dùng: view giống bảng thật • Dữ liệu view liệu nhiều bảng thật (view khơng chứa liệu thật sự) • Sự thay đổi liệu tương ứng bảng thật phản ánh lên view Chương V : An ninh An tồn Dữ liệu Khung nhìn • Mục đích sử dụng: • Thể liệu dạng phù hợp với nhóm nghiệp vụ/ nhóm NSD • Bảo mật liệu(security) Chương V : An ninh An tồn Dữ liệu Khung nhìn • Cú pháp: Create view view_name [(column_name [ , n ])] [With Schemabinding] As select_statement Chương V : An ninh An tồn Dữ liệu Khung nhìn • Cú pháp: Create view view_name [(column_name [ , n ])] [With Schemabinding] As select_statement Gắn kết view với lược đồ, đó: •Khơng thể xóa bảng hay view khác có liên quan đến định nghĩa view có schemabinding •Khơng thể thay đổi cấu trúc bảng/ view việc thay đổi ảnh hưởng đến định nghĩa view có schemabinding •Câu select định nghĩa view phải định rõ thuộc tính (khơng select * ) •Các tên bảng, view câu select phải viết dạng owner.Tênbảng/Tênview •Nếu view schemabinding định nghĩa view khác, view phải dạng schemabinding Chương V : An ninh An toàn Dữ liệu 10 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 lệnh (create database, create procedure, create table,…) • Cấp quyền thao tác đối tượng CSDL (đọc/ ghi table/view, thực thủ tục,…) Chương V : An ninh An toàn Dữ liệu 66 Quản lý quyền người dùng • Cấp quyền thực lệnh : • Cú pháp: GRANT { ALL | statement [ , n ] } TO security_account [ , n ] Trong đó: • statement = create database| create table| create view| create rule| create procedure|backup database|… • Security account = user| role • Ví dụ: GRANT create table, create procedure to dev01 Chương V : An ninh An toàn Dữ liệu 67 Quản lý quyền người dùng • Cấp quyền thao tác đố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_func7on } } TO security_account [ , n ] [ WITH GRANT OPTION ] [ AS role ] Chương V : An ninh An toàn Dữ liệu 68 Quản lý quyền người dùng • Cấp quyền thao tác đối tượng : • Cú pháp Permission = select| insert| GRANT delete| references|update| { ALL | permission [ , n ] } execute { [ ( column [ , n ] ) ] ON { table | view } | ON { table | view } [ ( column [ , n ] ) ] | ON { stored_procedure} | ON { user_defined_func7on } WITH GRANT } OPTION : cho TO security_account [ , n ] phép user cấp quyền thao tác [ WITH GRANT OPTION ] cho user/ role [ AS role ] khác As role: lệnh cấp quyền thực với tư cách thành viên “role” Chương V : An ninh An toàn Dữ liệu 69 Quản lý quyền người dùng • Ví dụ 1: Grant select, update on SinhVien (HoTen, DiaChi, NgaySinh) to Developer Thành viên Developer có quyền select, update cột HoTen, DiaChi NgaySinh bảng SinhVien Chương V : An ninh An tồn Dữ liệu Nhưng khơng cấp quyền cho user khác 70 Quản lý quyền người dùng • Ví dụ 2: Grant select, update on SinhVien (HoTen, DiaChi, NgaySinh) to Developer with grant op,on Thành viên Developer có quyền select, update cột HoTen, DiaChi NgaySinh bảng SinhVien Chương V : An ninh An toàn Dữ liệu Và phép cấp quyền cho user khác danh nghĩa Developer 71 Quản lý quyền người dùng • Dùng Deny để thu hồi quyền user/role • Khi user/role bị thu hồi quyền, khơng thừa hưởng quyền dù thành viên role có quyền • Cú pháp: Có hai dạng tương tự Grant: • Thu hồi quyền thực lệnh • Thu hồi quyền thao tác đối tượng Chương V : An ninh An toàn Dữ liệu 72 Quản lý quyền người dùng • Thu hồi quyền thực lệnh • Cú pháp: DENY { ALL | statement [ , n ] } TO security_account [ , n ] • Ví dụ Deny create table to Dev02 Chương V : An ninh An toàn Dữ liệu 73 Quản lý quyền người dùng • Thu hồi quyền thao tác đố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