Bài giảng Hệ quản trị cơ sở dữ liệu SQL Server - Chương 5: Bảo mật & Phân quyền - Nguyễn Thị Mỹ Dung

1/ Khái niệm

Mỗi CSDL có 1 hay nhiều users được chỉ định

quyền truy xuất dữ liệu. Người quản trị có thể cấp

quyền truy xuất CSDL bằng cách tạo một tài khoản

(user) đăng nhập (login) và gán quyền cho user

trên CSDL. Các quyền:

- Cấp phát quyền truy cập vào CSDL;

- Cấp phát quyền sử dụng các câu lệnh, các đối

tượng CSDL;

- Thu hồi quyền của người dùng

pdf24 trang | Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 808 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Hệ quản trị cơ sở dữ liệu SQL Server - Chương 5: Bảo mật & Phân quyền - Nguyễn Thị Mỹ Dung, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
GVPT: NGUYỄN THỊ MỸ DUNG SỐ TC: 2 SỐ TIẾT: LT: 20; TH: 20 1 Biên soạn: Nguyễn Thị Mỹ Dung Chương 1: Tổng quan về SQL Server (LT: 2) Chương 2: Tạo và quản trị CSDL (LT: 6; TH: 6) Chương 3: Transact-SQL và truy vấn dữ liệu (LT: 6: TH: 8) Chương 4: Lập trình với Transact-SQL (LT: 4: TH: 4) Chương 5: Bảo Mật và Phân Quyền (LT: 2; TH: 2) Chương 6: Kết nối CSDL (Tự học) 2 Biên soạn: Nguyễn Thị Mỹ Dung I. Giới thiệu II. Login, User Account, User Roles III. Kế hoạch phân quyền và bảo mật IV. Kết nối CSDL Biên soạn: Nguyễn Thị Mỹ Dung 3 1/ Khái niệm Mỗi CSDL có 1 hay nhiều users được chỉ định quyền truy xuất dữ liệu. Người quản trị có thể cấp quyền truy xuất CSDL bằng cách tạo một tài khoản (user) đăng nhập (login) và gán quyền cho user trên CSDL. Các quyền: - Cấp phát quyền truy cập vào CSDL; - Cấp phát quyền sử dụng các câu lệnh, các đối tượng CSDL; - Thu hồi quyền của người dùng. Biên soạn: Nguyễn Thị Mỹ Dung 4 2/ Các thành phần trong bảo mật CSDL - Người dùng cơ sở dữ liệu (Database user): thực thi các thao tác trên cơ sở dữ liệu như tạo bảng, truy xuất dữ liệu,... Mỗi một người dùng được xác định thông qua tên người dùng (User ID) hoặc nhóm người dùng (User Group). - Các đối tượng cơ sở dữ liệu (Database objects): bảng, khung nhìn, thủ tục, hàm được gọi là các đối tượng cơ sở dữ liệu. - Đặc quyền (Privileges): Là tập những thao tác được cấp phát cho người dùng trên các đối tượng cơ sở dữ liệu. Biên soạn: Nguyễn Thị Mỹ Dung 5 Biên soạn: Nguyễn Thị Mỹ Dung 6 1/ Login và user SQL Server cho phép truy nhập vào hệ thống thông qua các login. Chỉ khi có quyền ở mức độ nhất định bạn mới có thể tạo thêm login. - Login: tên hệ thống (duy nhất) được SQL Server cấp phép truy cập hệ thống. - User: tên gắn với 1 login name cụ thể được SQL cấp phép truy xuất 1 DB xác định. Như vậy: - Một login name có nhiều user, một user được tạo ở DB nào thì chỉ được phép truy xuất DB đó. - Để tạo nhiều user phải tạo LOGIN NAME trước, sau đó mở DB tương ứng và lần lượt tạo từng USER. 2/ Authentication SQL Server xác thực các đăng nhập bằng hai cơ chế: windows authentication, SQL Server authentica- tion. - Nếu chọn windows..., bạn cần cung cấp một windows account và SQL Server sẽ chỉ lưu tên của account đó trong danh sách login. - Nếu chọn SQL Server..., bạn cần cung cấp login name và password và cả hai đều được lưu trong SQL Server. Lưu ý: login sử dụng windows authentication, SQL Server chỉ lưu login name, không lưu password và khi đăng nhập, hệ thống sẽ không xác thực cho bạn. Biên soạn: Nguyễn Thị Mỹ Dung 7 3/ Server role Role thực chất là tập hợp một nhóm các quyền và đại diện bằng một tên để thuận tiện cho việc quản lý. Server role là nhóm các quyền ở mức server mà login được cấp sẽ có thể thực hiện một số thao tác nhất định ở mức server. Login khi mới được tạo sẽ có role public, role này thực chất không có quyền gì ngoài quyền truy nhập vào server. 4/ Database role DB tập hợp các quyền truy nhập vào DB thành từng nhóm để dễ tạo lập và sửa đổi. Khi user là role public, user chỉ có thể nhìn thấy tên database mà không có quyền gì khác. Biên soạn: Nguyễn Thị Mỹ Dung 8 Phân chia quyền hạn quản trị và sử dụng Hệ quản trị CSDL SQL Server. Hình thành theo cơ cấu  Người đăng nhập (login)  Người dùng (user)  Quyền hạn (permission)  Nhóm quyền (role) Người đăng nhập được thể hiện là mỗi một người dùng với một số quyền hạn ứng với một dữ liệu. Biên soạn: Nguyễn Thị Mỹ Dung 9 1. Đăng nhập (login) a/ Tạo người đăng nhập SP_ADDLOGIN [ @login = ] [,@password =] , [,@defdb =] [ , @deflanguage = ] [ , @sid =] [ ,@encriptopt = 'skip_encription' ]--mã hóa pass [,] VD: Tạo tài khoản tên USER01', mat khau ‘01' vào CSDL 'QLDeTaiSV‘ SP_ADDLOGIN 'USER01','01','QLDETAISV' Biên soạn: Nguyễn Thị Mỹ Dung 10 Cách 2: CREATE LOGIN WITH PASSWORD = , DEFAULT_DATABASE = VD1: Tạo login USER02 CREATE LOGIN USER02 WITH PASSWORD = 'ABC', DEFAULT_DATABASE = QLDETAISV [,] Biên soạn: Nguyễn Thị Mỹ Dung 11 b/ Thay đổi người đăng nhập ALTER LOGIN { [ENABLE | DISABLE] | WITH {PASSWORD= ‘...’ | DEFAULT_DATABASE = ... } VD: ALTER LOGIN [sa] DISABLE c/ Xóa người đăng nhập [EXEC] SP_DROPLOGIN ‘TÊN_LOGIN’ Hoặc: DROP LOGIN TÊN_LOGIN VD: DROP LOGIN USER01 EXEC SP_DROPLOGIN USER02 Biên soạn: Nguyễn Thị Mỹ Dung 12 2. Người dùng (User) a/ Tạo người dùng EXEC SP_ADDUSER ‘TÊN_LOGIN’, ’TÊN_USER’ [ , ‘TÊN_ROLE’ ] CREATE USER TÊN_USER FOR TÊN_LOGIN VD: EXEC SP_ADDUSER [MDUNG], [HQTCSDL] CREATE USER [IN410501] FOR LOGIN [MDUNG] CREATE USER [IN410502] WITHOUT LOGIN WITH DEFAULT_SCHEMA =[MDUNG] Biên soạn: Nguyễn Thị Mỹ Dung 13 b/ Xoá người dùng [EXEC] SP_DROPUSER ‘TÊN_USER’ DROP USER TÊN_USER VD: DROP USER IN410501 EXEC SP_DROPUSER IN410502 Biên soạn: Nguyễn Thị Mỹ Dung 14 3. Nhóm quyền hạn (Role) a/ Tạo quyền EXEC SP_ADDROLE TÊN_ROLE CREATE ROLE TÊN_ROLE VD: EXEC SP_ADDROLE [QUANLY] CREATE ROLE [NHANVIEN] b/ Xóa nhóm quyền EXEC SP_DROPROLE TÊN_ROLE DROP ROLE TÊN_ROLE Biên soạn: Nguyễn Thị Mỹ Dung 15 c/ Gắn người dùng với nhóm quyền EXEC SP_ADDROLEMEMBER TÊN_ROLE, TÊN_USER VD: EXEC SP_ADDROLEMEMBER 'QUANLY', 'IN410501' d/ Xóa người dùng với nhóm quyền EXEC SP_DROPROLEMEMBER TÊN_ROLE , TÊN_USER’ VD: EXEC SP_DROPROLEMEMBER 'QUANLY', 'IN410501' Biên soạn: Nguyễn Thị Mỹ Dung 16 Biên soạn: Nguyễn Thị Mỹ Dung 17 4. Cấp quyền (Permission) a/ Gán quyền GRANT {ALL | PERMISSION} ON TABLE [(COLUMN [,...N])] TO { USER | ROLE [,... N] } [ WITH GRANT OPTION ] with grant option : được phép gán lại quyền mà mình có cho người khác. VD1: GRANT SELECT ON DETAI TO QUANLY Biên soạn: Nguyễn Thị Mỹ Dung 18 VD2: GRANT SELECT --INSERT | UPDATE | DELETE | REFERENCES | EXECUTE ON SINHVIEN -- DETAI | SV_DT TO IN410501 -- PUBLIC| MDUNG | sa Biên soạn: Nguyễn Thị Mỹ Dung 19 b/ Xóa quyền hạn REVOKE [Grant Option For] {ALL| PERMISSION} ON TABLE[ (COLUMN [,...N])] TO { USER | ROLE [,... N] } [ CASCADE ] - grant option for : bỏ tính năng cấp lại quyền cho người khác (quyền vẫn được giữ lại). - cascade: bỏ tất cả các quyền (ở các kế thừa). VD: REVOKE SELECT ON SINHVIEN TO IN410501 REVOKE CREATE TABLE FROM MDUNG Biên soạn: Nguyễn Thị Mỹ Dung 20 5. Thay đổi mật khẩu SP_PASSWORD [ @old = ] [ , @new = ] [ , @LoginName = ] VD: Thay đổi mật khẩu ‘USER01’ từ ‘01’ thành ‘SS’ SP_PASSWORD '01','SS','USER01' Biên soạn: Nguyễn Thị Mỹ Dung 21 6 Cấp quyền truy xuất CSDL hiện tại cho Login: Sp_GrantDBAccess [ @loginname = ] 'Têndangnhap' [ [, @name_in_db = ] 'TênUser' ] VD: Use QLDeTai Go sp_GrantDBAccess 'user01', 'Anh' Biên soạn: Nguyễn Thị Mỹ Dung 22 Sinh viên tự học Biên soạn: Nguyễn Thị Mỹ Dung 23 - Tổng quan về bảo mật - Các khái niệm liên quan phân quyền và bảo mật - Kế hoạch phân quyền: + Tạo Login + Tạo User + Tạo Role + Thay đổi mật khẩu login hoặc user + Cấp phát/thu hồi quyền truy cập CSDL cho user. Biên soạn: Nguyễn Thị Mỹ Dung 24

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_he_quan_tri_co_so_du_lieu_sql_server_chuong_5_bao.pdf