Một số khái niệm vể bảo mật trong SQL

SQL Server  là 1 mảng đề tài rộng, bao gồm học các kỹ năng lập trình, kỹ thuật ứng dụng SQL vào ứng dụng thực tế, các mô hình cơ sở dữ liệu, kĩ thuật mới của SQL Server, quản trị cơ sở dữ liệu, bảo mật….Qua bài viết này, tôi sẽ giúp bạn tìm hiểu một số khái niệm vể bảo mật trong SQL Server.

  1. Login và user

Thông qua việc login, SQL Server cho phép truy nhập vào hệ thống. Bạn có thể tạo thêm login chỉ khi có quyền ở một mức độ nào đó. Bằng cách mở rộng node Security/Logins trong SSMS bạn có thể xem lại các login. Các login này mới chỉ có quyền truy nhập vào server chứ không có quyề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, ở mức server các user này luôn luôn kèm với một login. Thông qua login này, khi bạn đăng nhập vào SQL Server theo quyền mà user tương ứng với nó được cung cấp thì bạn sẽ có quyền truy nhập vào database. Bằng việc mở rộng node Security/Users của database tương ứng bạn sẽ xem các user này.

hoc-sql-1

  1. Server role

Server role là nhóm các quyền ở mức server mà login khi được cấp phát có thể thực hiện một số thao tác nhất định ở mức server. Ví dụ role sysadmin có quyền truy nhập vào tất cả các database, có toàn quyền hoạt động trong server (tạo database, khởi động lại server…), diskadmin thì chỉ có quyền trong các thao tác về đĩa (như bổ sung thêm file vào database…).

Khi mới được tạo Login sẽ xuất hiện role public, role này thực chất ngoài quyền truy nhập vào server thì không có quyền gì. Thông thường thì chỉ các chuyên viên quản trị cơ sở dữ liệu mới nên có quyền sysadmin, còn các developer thì chỉ cần role public và bổ sung thêm khi cần.

  1. Database role

Database role cũng có mục đích như vậy, đó là tập hợp các quyền truy nhập vào database để dễ sửa đổi và tạo lập. Ví dụ role db_datawriter có quyền để ghi vào tất cả các bảng; role db_datareader thì có quyền đọc dữ liệu từ tất cả các bảng,  role db_owner lại 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 đều có role public. User chỉ có thể nhìn thấy tên database mà không có thêm bất kì quyền gì khác khi user chỉ có role public.

hoc-sql

  1. Authentication

Xác thực các đăng nhập của SQL Server với hai cơ chế, SQL Server authentication và windows authentication. Việc này bắt nguồn từ khi tạo login trong SQL Server, SQL Server sẽ yêu cầu bạn chọn cơ chế xác thực windows hay SQL Server cho login khi bạn tạo một login mới. Nếu chọn SQL Server authentication, bạn phải cung cấp login name và password, cả hai đều được lưu trong SQL Server. Còn nếu chọn windows, bạn phải cung cấp một windows account và SQL Server sẽ chỉ lưu tên của account đó trong danh sách login.

Bạn sẽ phải chọn một trong hai cơ chế xác thực khi đăng nhập vào SQL Server. Nếu chọn windows thì chính account hiện đang đăng nhập vào windows được dùng. Bạn không có quyền lựa 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 hay không. Nếu có thì nó cho vào còn không thì 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 quyền truy cập 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 mà không hề lưu password. 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.

Với những chia sẻ trên, bạn đã hiểu thêm một số khái niệm về tính bảo mật trong SQL Server? Nếu bạn muốn làm chủ hệ quản lý cơ sở dữ liệu SQL Sever thì hãy tham khảo các video hướng dẫn học SQL cơ bản tới nâng cao từ chuyên gia Stanford nhé.

Bắt đầu học SQL qua video bạn cũng có thể thực hành luôn khi theo dõi các video hướng dẫn đó. Link video: https://goo.gl/sZ9ouy

——-

STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ

Hotline: 0936 172 315 – 024. 6275 2212

 

Nhận xét