Để sử dụng được SQL Server thì người quản trị cần tạo các user login để chứng thực truy cập của user. Trong bài này chúng ta sẽ đi tìm hiểu về các phương thức chứng thực và các quyền truy cập gồm server roles và database mapping.
Chứng thực người dùng (Authentication):
User truy cập và sử dụng SQL Server được quản lý ở Security > Logins của SQL, dùng để xác nhận một user có quyền kết nối vào SQL server hay không. Nói một cách khác, một user muốn kết nối vào SQL server phải được tạo tài khoản và được cấp quyền login trong mục Logins của SQL Server. User này còn được dùng để cấp quyền truy cập vào các database có trên trên SQL Server. Lưu ý là quyền login và quyền truy cập database là quyền khác nha.
Đối với phương thức chứng thực, SQL server cung cấp hai phương thức là Windows Authencation và SQL Server Authentication:
- Windows Authentication: sử dụng user login Windows trên chính máy tính cài đặt SQL Server. Windows User bao gồm cả local user và domain user nếu may tính cài đặt SQL server có join domain.
- SQL Server Authentication: Là tài khoản được tạo và quản lý bởi chính SQL Server.
-
-
- (1): Tài khoản chứng thực Windows (local user)
- (2): Tài khoản chứng thực của Windows (domain user)
- (3): Tài khoản của SQL Server
-
Mặc định, khi cài đặt SQL Server sẽ sử dụng phương thức Windows Authentication. Để chọn cả hai phương thức bạn chọn vào Mixed Mode (SQL Server authentication and Windows authentication), để xem chi tiết bạn chọn xem bài Cài đặt Microsoft SQL Server stand-alone.
Cấp quyền truy cập (Authorization):
Server Rolse: Khi tài khoản login khi được tạo ra, sẽ được phân quyền truy cập theo các Server Role phù hợp với mục đích login vào server của user:
- sysadmin
- serveradmin
- securityadmin
- processadmin
- setupadmin
- bulkadmin
- diskadmin
- dbcreator
- public
Bảng thống kê các server roles:
Khi tạo ra một tài khoản login mới, mặc định tài khoản đó sẽ được thêm vào server role public. Bạn lưu ý là server role sysadmin là server role có quyền cao nhất, nó bao gồm luôn tất cả các quyền của các server roles khác.
Để có thể login vào SQL server, ngoài quyền user phải ở trạng thái (Status) như sau:
SQL Server Mapping (Database permission): Để có thể sử dụng các database trong SQL Server, người dùng còn phải được Mapping vào phần quyền trên các database được phép truy cập. Các quyền truy cập database như sau:
- db_owner
- db_securityadmin
- db_accessadmin
- db_backupoperator
- db_ddladmin
- db_datawriter
- db_datareader
- db_denydatawriter
- db_denydatareader
- public
Bảng thống kê các permission trên database:
Tương tự như server roles, database permission cũng mặc định add thêm quyền public vào khi user được mapping database. Quyền db_owner là quyền cao nhất, nó bao gồm tất cả quyền của các roles khác.
Trên đây chúng ta đã có khái niệm về chứng thực người dùng và quyền truy cập vào SQL server của người dùng. trong bài tiếp theo, chúng ta sẽ tiến hành tạo người dùng và phân quyền truy cập.