Chatbox

Các bạn vui lòng dùng từ ngữ lịch sự và có văn hóa,sử dụng Tiếng Việt có dấu chuẩn. Chúc các bạn vui vẻ!
19/09/2013 09:09 # 1
quynhdtu
Cấp độ: 17 - Kỹ năng: 12

Kinh nghiệm: 120/170 (71%)
Kĩ năng: 34/120 (28%)
Ngày gia nhập: 01/04/2011
Bài gởi: 1480
Được cảm ơn: 694
Các cơ chế bảo mật của SQL Server


Các cơ chế bảo mật của SQL Server

Kiến trúc Security trong SQL Server dựa vào 3 thành phần chính:

  • Principals: các tài khỏan bảo mật
  • Securables: các đối tựơng được bảo vệ
  • Permissions: quyền sử dụng các Securables của Principals.

Giới thiệu SQL Server Authentication (Chế độ xác thực)

SQL Server có 2 cơ chế xác thực User.

SQL Server có thể xác thực các đăng nhập dựa vào cơ chế bên trong của riêng nó hay dựa vào Windows để xác thực việc đăng nhập. Mỗi cơ chế đều có những thuận tiện và bất tiện riêng.

  • SQL Server Authentication: Đây là cơ chế xác thực của SQL Server. Với chế độ này, SQL Server lưu trữ các tài khỏan đăng nhập và mật mã trong database Master.

Điểm thuận tiện của chế độ này là SQL Server có thể xác thực bất kỳ phiên đăng nhập nào mà không quan tâm người dùng đã được xác thực như thế nào trong Window, miễn là họ có một tài khoản SQL Server. Chế độ này làm giảm tính bảo mật.

  • Windows Authentication: cơ chế này dựa vào Windows. Windows thực hiện xác thực và SQL Server tin tưởng điều này và cung cấp quyền truy cập cho các tài khỏan Windows.

DBA có thể cấu hình những chế độ xác thực này bằng 2 cách:

  • Mixed Security: Một login có thể thực hiện dựa vào kết nối SQL Server hay Windows.
  • Windows Only: Chỉ những login có quyền trong Windows mới được đăng nhập.

Giới thiệu Server-Level Roles:

Để dễ dàng quản lý các Permission trên Server, SQL Server cung cấp các Role. Role cũng tương tự như Groups trong hệ điều hành Windows.

Server-Level Roles còn gọi là Fixed Server Roles. Nó cố định vì ta không thể tạo thêm Server-level roles.

Ví dụ về những Server-level roles tiêu biểu:

  • Sysadmin: thành viên của sysadmin có thể thực hiện bất kỳ hành động nào trên Server.
  • Serveradmin: thành viên của serveradmin có thể thay đổi cấu hình và shut down Server.
  • Securityadmin: thành viên của Securityadmin có thể quản lý các login và thuộc tính của chúng.

Để làm việc với các Server-Level Roles ta có thể dùng các commands, Views, Functions.

Một Số Khái Niệm Về Bảo Mật Trong SQL Server

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. Trong SSMS bạn có thể xem các login này bằng cách mở rộng node Security/Logins. Các login này mới chỉ có quyền truy nhập vào server chứ chưa hẳn đã truy nhập được vào các database chứa trong đó.

Đến lượt mỗi database lại duy trì một danh sách các user, các user này luôn luôn đính (mapped) với một login ở mức server. Khi bạn đăng nhập vào SQL Server thông qua login này, bạn sẽ có quyền truy nhập vào database theo quyền hạn mà user tương ứng với nó được cung cấp. Bạn xem các user này bằng cách mở rộng node Security/Users của database tương ứng.

Ví dụ, tôi có một login tên là vuht2000 trong SQL Server. Ở database db1 tôi có user vuht2000 được gắn với login vuht2000, và user này chỉ có quyền đọc. Ở database db2 tôi cũng có user vuht2000 được gắn với cùng login trên, và user này có quyền đọc/ghi. Khi truy nhập vào SQL Server bằng login vuht2000, bạn sẽ có quyền đọc trên database db1 và đọc/ghi trên database db2.

2. 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 khi được cấp sẽ có thể thực hiện một số thao tác nhất định ở mức server. Ví dụ role sysadmin có toàn quyền hoạt động trong server (tạo database, khởi động lại server…) và tự khắc nó cũng có quyền truy nhập vào tất cả database, diskadmin chỉ có quyền trong các thao tác về đĩa (như bổ sung thêm file vào database…). 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. Thông thường chỉ DBA mới nên có quyền sysadmin, còn các developer chỉ cần role public và bổ sung thêm khi cần.
3. Database role

Cũng với mục đích như vậy, database role tập hợp các quyền truy nhập vào database thành từng nhóm để dễ tạo lập và sửa đổi. Ví dụ role db_datareader có quyền đọc dữ liệu từ tất cả các bảng, role db_datawriter có quyền ghi vào tất cả các bảng; role db_owner có quyền cao nhất trong database (tạo bảng, tạo thủ tục, thực thi thủ tục…). Các user đều mặc định có role public. Khi user chỉ có role public, user chỉ có thể nhìn thấy tên database mà không có quyền gì khác.
4. Authentication

SQL Server xác thực các đăng nhập bằng hai cơ chế, windows authentication và SQL Server authentication. Việc này bắt nguồn từ khi tạo login trong SQL Server. Khi bạn tạo một login mới, SQL Server sẽ yêu cầu bạn chọn cơ chế xác thực windows hay SQL Server cho login đó. 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 authentication, bạn cần cung cấp login name và password và cả hai đều được lưu trong SQL Server.

Khi đăng nhập vào SQL Server, bạn cũng sẽ phải chọn một trong hai cơ chế xác thực. Nếu chọn windows, chính account hiện đang đăng nhập vào windows được dùng. Bạn không có quyền chọn login và thực tế, SQL Server sẽ vòng xuống windows và kiểm tra xem account nào đang đăng nhập vào windows, nó sẽ lấy account đó và xem có nằm trong danh sách login của nó hay không. Nếu có thì nó cho vào còn nếu không nó sẽ chặn lại.

Còn với SQL Server authentication thì cơ chế giống như bình thường – bạn cung cấp login ID và password. SQL Server sẽ kiểm tra và quyết định có cho vào hay không.

Một điểm cần lưu ý là với login sử dụng windows authentication, SQL Server chỉ lưu login name và không hề lưu password. Và khi đăng nhập nếu bạn cố tình chọn sang SQL Server authentication, hệ thống sẽ không xác thực cho bạn.
 
Nguồn: kdtqt.duytan.edu.vn


You can if you think you can

Smod "Góc Học Tập"

Skype: mocmummim

Email: phanthiquynh.qnh3@gmail.com

FB: facebook.com/phan.quynh.96


 
Copyright© Đại học Duy Tân 2010 - 2024