Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 54 trang
THÔNG TIN TÀI LIỆU
Cấu trúc
Chương 14 SECURITY
Mục tiêu
Một số khái niệm
Khái quát về tính bảo mật trong SQL Server
Login ID và user ID
Slide 6
Authentication &Authorization
Tạo tài khoản đăng nhập Login ID
Tạo tài khoản đăng nhập của Windows
Tạo tài khoản của SQL server
Xem các login ID
Tạo user cho DB hiện hành
Slide 13
Role là gì?
Vai trò của role
Ví dụ minh hoạ
Ví dụ
Slide 18
Slide 19
Slide 20
Các loại User Roles
Fixed Server Roles
Slide 23
Slide 24
Slide 25
Database roles
Slide 27
Slide 28
Slide 29
Thêm thành viên vào DB role
sp_addrolemember
Custom Database Roles
Tạo DB role tuỳ biến
Vai trò của Application Roles
Application Roles
Application Role
Slide 37
Slide 38
sp_addapprole
sp_setapprole
Ví dụ
Các loại quyền (Permissions)
Object Permissions (Quyền về đối tượng)
Statement Permissions Quyền về lệnh
Implied Permissions Quyền ngầm định
Data Control Language
Slide 47
Slide 48
Data Control Language (Contd.)
Slide 50
Giải quyết xung đột các quyền
Slide 52
Slide 53
Slide 54
Nội dung
1 1 Chương 14Chương14 SECURITY SECURITY Bảo mật trong cơ sở dữ liệu Bảo mật trong cơ sở dữ liệu 2 M M ục tiêu ục tiêu Trong phần này, chúng ta sẽ học về: Trong phần này, chúng ta sẽ học về: Các tính chất bảo mật của SQL Server Các tính chất bảo mật của SQL Server Tạo tài khoản đăng nhập (user login) Tạo tài khoản đăng nhập (user login) Phân biệt tài khoản đăng nhập (user login) và tài Phân biệt tài khoản đăng nhập (user login) và tài khoản người dùng (user ID) khoản người dùng (user ID) Các loại User Roles: Các loại User Roles: • Fixed Server Roles Fixed Server Roles • Database Roles Database Roles Các loại quyền bảo mật( Security Permissions) Các loại quyền bảo mật( Security Permissions) Nhóm lệnh DCL : GRANT, DENY, REVOKE Nhóm lệnh DCL : GRANT, DENY, REVOKE Giải quyết xung đột giữa các quyền Giải quyết xung đột giữa các quyền 3 Một số khái niệm Một số khái niệm Authentication: là 1 quy trình dùng để xác nhận Authentication: là 1 quy trình dùng để xác nhận một ai đó có phải thực sự chính là họ không. một ai đó có phải thực sự chính là họ không. Thường quy trình này liên quan đến username Thường quy trình này liên quan đến username và password. Authentication tương đương với và password. Authentication tương đương với việc trình hộ chiếu ở cổng soát vé của sân bay. việc trình hộ chiếu ở cổng soát vé của sân bay. Authorization dùng để tìm xem một người sau Authorization dùng để tìm xem một người sau khi đã được nhận dạng có quyền được sử dụng khi đã được nhận dạng có quyền được sử dụng tài nguyên không? Authorization tương đương tài nguyên không? Authorization tương đương với việc kiểm tra vé để được phép lên máy bay. với việc kiểm tra vé để được phép lên máy bay. 4 Kh Kh ái quát về tính bảo mật trong ái quát về tính bảo mật trong SQL SQL Server Server M M ỗi ỗi database n database n ên có 1 hệ thống bảo mật ên có 1 hệ thống bảo mật đáng tin cậy ( đáng tin cậy ( reliable security system reliable security system ) để ) để giám sát mọi hoạt động cũng như các giám sát mọi hoạt động cũng như các thông tin cần được xem và chỉnh sửa thông tin cần được xem và chỉnh sửa Một hệ thống bảo mật đáng tin cậy ph Một hệ thống bảo mật đáng tin cậy ph ải ải bảo bảo đám được việc bảo vệ dữ liệu bất kể việc user đám được việc bảo vệ dữ liệu bất kể việc user đã dùng cách nào để truy xuất vào database. đã dùng cách nào để truy xuất vào database. SQL áp dụng các quyền bảo mật vào c SQL áp dụng các quyền bảo mật vào c ác ác mức: mức: mức database, mức các đối tượng và mức c mức database, mức các đối tượng và mức c ác ác cột của bảng cột của bảng 5 Login ID và user ID Login ID và user ID Cần phân biệt Login ID và user ID: Cần phân biệt Login ID và user ID: Người dùng muốn truy xuất vào Microsoft Người dùng muốn truy xuất vào Microsoft SQL Server, thì phải có login ID và password. SQL Server, thì phải có login ID và password. Nhưng login ID chính nó không cho phép Nhưng login ID chính nó không cho phép nguời dùng quyền truy xuất đến các DB. nguời dùng quyền truy xuất đến các DB. User ID nhận dạng người dùng trong 1 DB. User ID nhận dạng người dùng trong 1 DB. Tất cả các quyền và chủ quyền của các đối Tất cả các quyền và chủ quyền của các đối tượng trong DB đều được điều khiển bởi user tượng trong DB đều được điều khiển bởi user ID. Ví dụ user ID là xyz trong DB sales khác ID. Ví dụ user ID là xyz trong DB sales khác với user ID cũng tên là xyz trong DB với user ID cũng tên là xyz trong DB inventory. inventory. 6 Login ID và user ID Login ID và user ID Một login ID phải kết hợp với 1 user ID trong mỗi Một login ID phải kết hợp với 1 user ID trong mỗi DB để truy xuất dữ liệu trong DB. Nếu login ID DB để truy xuất dữ liệu trong DB. Nếu login ID không được kết hợp tường minh với 1 user ID không được kết hợp tường minh với 1 user ID thì nó sẽ kết hợp với user ID là guest. Nếu DB thì nó sẽ kết hợp với user ID là guest. Nếu DB không có user ID guest thì không thể truy xuất không có user ID guest thì không thể truy xuất vào DB được vào DB được sa sa là 1 tài khoản đăng nhập (login account) được là 1 tài khoản đăng nhập (login account) được ánh xạ tự động với user ID ánh xạ tự động với user ID dbo dbo trong mọi DB. trong mọi DB. Guest là user ID đặc biệt Guest là user ID đặc biệt Việc quản trị sẽ dễ dàng hơn nếu login ID và Việc quản trị sẽ dễ dàng hơn nếu login ID và user ID giống nhau nhưng điều này không bắt user ID giống nhau nhưng điều này không bắt buộc. buộc. 7 Authentication &Authorization Authentication &Authorization Tài khoản đăng nhập (Login ID) sẽ được Tài khoản đăng nhập (Login ID) sẽ được ánh xạ với tài khoản user ( user ID) để cho ánh xạ với tài khoản user ( user ID) để cho phép user được quy phép user được quy ền truy xu ền truy xu ất trong 1 ất trong 1 DB. Quá trình này gọi là DB. Quá trình này gọi là authorization authorization (hay (hay permission validation). User sẽ không thể permission validation). User sẽ không thể truy xuất vào DB ngay cả khi họ có tài truy xuất vào DB ngay cả khi họ có tài khoản đăng nhập (login ID ) hợp lệ. khoản đăng nhập (login ID ) hợp lệ. 8 Tạo tài khoản đăng nhập Login ID Tạo tài khoản đăng nhập Login ID Hai dạng login ID: Hai dạng login ID: Dùng tài khoản đăng nhập của chính Windows Dùng tài khoản đăng nhập của chính Windows như tài khoản đăng nhập vào SQL server. như tài khoản đăng nhập vào SQL server. Tạo 1 tài khoản đăng nhập của riêng SQL server Tạo 1 tài khoản đăng nhập của riêng SQL server Login ID đặc biệt: Login ID đặc biệt: Tài khoản administrator của Windows Tài khoản administrator của Windows Tài khoản thuộc nhóm administrator của SQL Tài khoản thuộc nhóm administrator của SQL server ( sa thuộc nhóm này) server ( sa thuộc nhóm này) Có quyền truy cập đến mọi CSDL Có quyền truy cập đến mọi CSDL 9 Tạo tài khoản đăng nhập của Tạo tài khoản đăng nhập của Windows Windows Dùng lệnh: Dùng lệnh: sp_grantlogin sp_grantlogin [ [ @loginame @loginame = = ] ] ' ' login login ‘ ‘ Ví dụ: muốn có thể đăng nhập vào SQL Ví dụ: muốn có thể đăng nhập vào SQL server bằng account của Windows là server bằng account của Windows là user1, ta dùng lệnh sau: user1, ta dùng lệnh sau: sp_grantlogin ‘user1’ sp_grantlogin ‘user1’ Dùng Enterprise Manager: Dùng Enterprise Manager: Security\Logins, nhấp phải chọn New Security\Logins, nhấp phải chọn New Login, chọn Authentication Windows Login, chọn Authentication Windows 10 Tạo tài khoản của SQL server Tạo tài khoản của SQL server Chỉ có người quản tri (administrator) mới có Chỉ có người quản tri (administrator) mới có quyền tạo login ID mới. quyền tạo login ID mới. Dùng lệnh Dùng lệnh sp_addlogin sp_addlogin [ [ @loginame = @loginame = ] ] ' ' login login ' ' [ [ , , [ [ @passwd = @passwd = ] ] ' ' password password ' ' ] [ ] [ , , [ [ @defdb = @defdb = ] ] ' ' database database ' ' ] ] Ví dụ: Ví dụ: EXEC sp_addlogin ‘student1', 'Password', EXEC sp_addlogin ‘student1', 'Password', 'master‘ 'master‘ Dùng Enterprise Manager: Dùng Enterprise Manager: Security\Logins, nhấp phải chọn New Login, Security\Logins, nhấp phải chọn New Login, chọn Authentication SQL server chọn Authentication SQL server [...]... bảo mật (security account): có thể là bất kỳ user hợp lệ nào của SQL server Có thể là 1 role nào đó của SQL Server có thể là bất kỳ user hay group nào của Windows đã được gán quyền truy cập vào DB hiện hành Dùng lệnh sp_addrolemember để thêm 1 tài khoản vào 1 role, khi đó thành viên có thể kế thừa bất kỳ quyền nào của role đó sp_addrolemember [ @rolename = ] 'role' , [ @membername = ] 'security_ account'... sp_addrolemember [ @rolename = ] 'role' , [ @membername = ] 'security_ account' 30 sp_addrolemember Cú pháp sp_addrolemember [ @rolename = ] 'role' , [ @membername = ] 'security_ account' sp_droprolemember [ @rolename = ] 'role' , [ @membername = ] 'security_ account' 31 Custom Database Roles Người dùng có thể cần có thêm một số quyền mà các quyền này chưa được xác định trong bất kỳ role database cố định nào... từng user riêng lẻ Có 3 loại database roles: • Fixed • Custom • Application 26 Fixed Database Roles DatabaseRole Mô tả db_owner Có tất cả các quyền trong DB db_accessadmin Thêm hay xóa các user ID db_securityadmin Quản lý tất cả các role và permission trong DB,có thể thay đổi chủ quyềnower (ownership) db_ddladmin Có thể thực hiện tất cả các lệnh DDL nhưng không thể sử dụng các lệnh GRANT, REVOKE hay... thành viên trong nhóm sẽ có quyền như nhau Nếu chức năng của nhóm thay đổi, ta chỉ đơn giản thay đổi quyền của nhóm, khi đó những thay đổi này sẽ được tự động áp dụng cho tất cả các thành viên trong nhóm 14 Vai trò của role Để dễ quản lý 1 DB, nên xác định 1 tập hợp các role dựa theo yêu cầu công việc và gán mỗi role những quyền hạn (permission) khác nhau Sau đó, chỉ cần chuyển các user vào các role... xác lập lượng bộ nhớ mà SQL server có thể dùng khi truyền thông tin qua mạng 22 Fixed Server Roles setupadmin: có quyền thực thi replication và quản trị các thủ tục (extended stored procedures) securityadmin: điều hành bảo mật như tạo login và gán quyền processadmin: có quyền kết thúc các tiến trình được gọi không hợp lệ dbcreator: tạo và chỉnh sửa database 23 Fixed Server Roles diskadmin:... sẽ gán các user vào role 32 Tạo DB role tuỳ biến Dùng lệnh sp_addrole [ @rolename = ] 'role' [ , [ @ownername = ] 'owner' ] Bằng Enterprise Manager Chỉ có những thành viên của role sysadmin, db_securityadmin và db_owner mới có quyền chạy lệnh này Ví dụ: tạo 1 role mới tên Managers cho CSDL hiện hành EXEC sp_addrole 'Managers' 33 Vai trò của Application Roles Hệ thống bảo mật trong SQL . 1 1 Chương 14 Chương 14 SECURITY SECURITY Bảo mật trong cơ sở dữ liệu Bảo mật trong cơ sở dữ liệu 2 M M ục tiêu ục. sau khi người quản , sau khi người quản trị cho phép 5 tài khoản Windows bao gồm giáo trị cho phép 5 tài khoản Windows bao gồm giáo sư John, Sarah, Diane và 2 sinh viên Betty và sư John, Sarah,. sp_revokedbaccess 'CorporateGeorgeW EXEC sp_revokedbaccess 'CorporateGeorgeW ' ' 14 Role là gì? Role là gì? Role là một công cụ cực mạnh cho phép ta tập Role là một công cụ cực