Xem mẫu

  1. GVPT: NGUYỄN THỊ MỸ DUNG SỐ TC: 2 SỐ TIẾT: LT: 20; TH: 20 Biên soạn: Nguyễn Thị Mỹ Dung 1
  2. 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) Biên soạn: Nguyễn Thị Mỹ Dung 2
  3. 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
  4. 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
  5. 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
  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. Biên soạn: Nguyễn Thị Mỹ Dung 6
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. Biên soạn: Nguyễn Thị Mỹ Dung 17
  18. 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
  19. 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
  20. 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
nguon tai.lieu . vn