3.2.1. Tạo thông tin đăng nhập
Tạo thông tin đăng nhập để kết nối với SQL Server và tạo user truy cập vào CSDL.
Một thông tin đăng nhập là một tài khoản được định nghĩa ở cấp Server với các quyền hạn được gán để kết nối và có thể thực hiện nhiệm vụ quản trị, cũng như để truy cập CSDL. Để cấp quyền truy cập trong SQL Server, trước hết phải tạo ra thông tin đăng nhập.
Mô hình bảo mật SQL Server có hai mức: mức server và mức CSDL. Một thông tin đăng nhập, đầu tiên phải được tạo ra ở mức server, sau đó, cho phép truy cập đến một CSDL, user phải được tạo ra trong CSDL và được ánh xạ đến một thông tin đăng nhập đang tồn tại.
3.2.2. Hạn chế quyền của các tài khoản sa
Nhiều trường hợp kẻ tấn công thường nhằm mục tiêu là tài khoản sa.
Bởi vì trước kia, tài khoản này được tạo ra trong quá trình cài đặt và nó là một đăng nhập cố định, không thể thay đổi.
Để hạn chế rủi ro của những cuộc tấn công nhằm vào tài khoản sa, có
thể vô hiệu hóa hoặc đổi tên đăng nhập tài khoản này (Tính năng này được hỗ trợ từ SQL Server 2005 trở lên).
3.2.3. Sử dụng các vai trò cố định của Server
Thông tin đăng nhập cho phép kết nối tới SQL Server và truy cập CSDL khi chúng được ánh xạ tới người dùng CSDL. Mặc định chúng không có quyền thực hiện các thao tác quản trị mức server như quản lý các thông tin đăng nhập khác hay thay đổi cấu hình server.
Nếu muốn cho phép đăng nhập nào đó có quyền quản trị, có thể cung cấp cho nó những đặc quyền hoặc thêm chúng vào vai trò cố định của Server (đã xác định trước).
Các vai trò cố định của Server cho phép dễ dàng thu hồi hoặc cấp một số tập quyền chung.
3.2.4. Tạo người dùng CSDL và ánh xạ tới thông tin đăng nhập
Trong SQL Server không giới hạn vai trò cố định máy chủ, nên có thể tạo người dùng và định nghĩa vai trò quản trị (cho phép cài đặt riêng từng người dùng với quyền quản trị).
Các thông tin đăng nhập đảm bảo xác thực và truy cập vào tài nguyên máy chủ. Để truy cập vào một CSDL, chúng phải ánh xạ tới một người dùng trong CSDL. Truy cập vào các đối tượng CSDL được cấp cho người dùng, không áp dụng cho thông tin đăng nhập. Khi được tạo ra, CSDL được chỉ định một chủ sở hữu (DataBase Owner – dbo), đó là tên đăng nhập đã tạo ra nó.
3.2.5. Tạo CSDL người dùng và bản đồ đăng nhập
Nhằm đảm bảo xác thực thông tin đăng nhập và truy cập vào tài nguyên máy chủ. Để truy cập vào một CSDL, phải cung cấp bản đồ đăng nhập cho người sử dụng trong CSDL.
Người dùng có quyền quản trị an ninh cho một CSDL.
Các dữ liệu truy cập đối tượng trong CSDL được cung cấp cho người sử dụng chứ không dùng để đăng nhập.
3.2.6. Ngăn chặn thông tin đăng nhập và người dùng xem siêu dữ liệu Trước phiên bản SQL Server 2005, tất cả các máy chủ và siêu dữ liệu đều có thể được nhìn thấy bởi tất cả mọi người.
Hiện tại sự xuất hiện của các siêu dữ liệu đã có thể được kiểm soát. Mặc định là việc xem siêu dữ liệu có thể bị giới hạn bởi người có thẩm quyền trên đối tượng. Nhưng danh sách các CSDL, vẫn được nhìn thấy trong mỗi lần đăng nhập. Điều này hoàn toàn có thể được thay đổi. Giả sử, khi muốn ẩn các CSDL đối với tất cả các thông tin đăng nhập, thì loại bỏ quyền VIEW ANY DATABASE khỏi vai trò server công khai.
3.2.7. Tạo một CSDL bao gồm
Trong SQL Server có 2 mức độ an ninh là: máy chủ và dữ liệu.
Một đăng nhập máy chủ được ánh xạ cho người dùng trong CSDL. Chứng thực được quản lý ở cấp độ máy chủ và khi đăng nhập có thể truy cập CSDL mà ngưởi dùng có quyền truy cập.
Ánh xạ giữa tên đăng nhập và người sử dụng được thực hiện trên một SID (Security Identifier - mã nhân dạng bảo mật) nội bộ. Khi sao chép một CSDL đến máy chủ khác, ngay cả khi tên người dùng là như nhau, các liên kết SID khác nhau vẫn bị phá vỡ.
Để giải quyết việc phụ thuộc của một CSDL tới máy chủ của mình, Microsoft thực hiện khái niệm CSDL bao gồm.
Từ phiên bản SQL Server 2012, một CSDL bao gồm không phụ thuộc vào bất kỳ định nghĩa bên ngoài và có thể di chuyển giữa các máy chủ mà không cần bất kỳ cấu hình nào trên máy chủ mới.
3.2.8. Chỉnh sửa lỗi ánh xạ thông tin đăng nhập và người sử dụng trên CSDL phục hồi
Nếu di chuyển một CSDL từ một máy chủ khác, bằng cách back_up/restore, detach/attach thì sau đó sẽ xảy ra lỗi vì người dùng SQL không có thông tin đăng nhập tương ứng.
Như ánh xạ giữa thông tin đăng nhập và người sử dụng được thực hiện trên SID, nếu đăng nhập xuất hiện trên SQL Server đích có cùng tên nhưng khác SID, người dùng sẽ không được nhận dạng và xảy ra lỗi.