Làm thế nào để được thực hiện bằng cách sử dụng bối cảnh bảo mật hiện tại của đăng nhập, mật khẩu người dùng đến máy chủ từ xa


7

Giả sử bạn có Máy chủ SQL có "Máy chủ được liên kết" với máy chủ khác - cho biết "Máy chủ được liên kết" được đặt để sử dụng "Được tạo bằng bối cảnh bảo mật hiện tại của thông tin đăng nhập" làm mô hình xác thực.

Làm thế nào để SQL Server cung cấp mật khẩu chính xác (khi xử lý thông tin không phải là windows) cho máy chủ khác khi tất cả các máy chủ có là Hash.

Tôi đã chuyển thông tin đăng nhập từ máy chủ sang máy chủ trước đó và tôi biết rằng chỉ riêng hàm băm được lưu trữ trong SQL và điều này thường được trình bày dưới dạng hex giá trị hex khi tạo thông tin đăng nhập bằng mật khẩu, ví dụ:

create login test with password = '0x22A9AE652CFC38938D56A9C3872B266B192D16E4' hashed

Nếu SQL chỉ có sẵn một hàm băm - nó có thể đăng nhập vào máy chủ từ xa bằng cách sử dụng hàm băm không? Hoặc là mật khẩu ban đầu (chưa băm) được lưu trong phiên / bộ nhớ của người dùng trong toàn bộ thời gian kết nối của họ mà SQL có thể truy xuất và chuyển đến máy chủ từ xa để đăng nhập?

Nếu máy chủ có thể đăng nhập bằng hàm băm thay vì mật khẩu - điều này có thể được thực hiện trong thông tin đăng nhập bình thường hay đó hoàn toàn là một tính năng nội bộ của các máy chủ được liên kết?

Hoàn toàn là một câu hỏi tò mò - muốn hiểu làm thế nào những điều này hoạt động.


Là máy chủ cục bộ sử dụng cửa sổ xác thực tích hợp?
Chris Travers

Xin chào Chris, cả hai máy chủ đang sử dụng xác thực chế độ hỗn hợp - nhưng như đã nêu trong câu hỏi của tôi - điều này liên quan đến kết nối thông tin không phải cửa sổ (tức là thông tin sql) - chúc mừng
HeavenCore

Câu trả lời:


5

Trong khi nói dối với Microsoft về một vấn đề khác (yêu cầu hỗ trợ có trả tiền) tôi tình cờ hỏi họ về vấn đề này và họ xác nhận mật khẩu chưa được gửi đến máy chủ từ xa nhưng cơ chế mà SQL Engine thực hiện điều này là "bị ẩn và không thể bị bắt" - nhưng đủ để nói, đăng nhập không được thực hiện bằng cách sử dụng hàm băm.

Đây là phản hồi đầy đủ:

Làm thế nào để SQL Server cung cấp mật khẩu chính xác (khi giao dịch với thông tin không phải là windows) cho máy chủ khác khi tất cả các máy chủ có là Hash?

Trả lời : Nếu được kết nối với máy chủ cục bộ bằng Xác thực Máy chủ SQL, tên đăng nhập và mật khẩu sẽ được sử dụng để kết nối với máy chủ từ xa. Trong trường hợp này, một thông tin đăng nhập có cùng tên và mật khẩu phải tồn tại trên máy chủ từ xa.

Được thực hiện bằng cách sử dụng bối cảnh bảo mật hiện tại của đăng nhập :

Chỉ định rằng một kết nối sẽ được thực hiện bằng cách sử dụng bối cảnh bảo mật hiện tại của thông tin đăng nhập cho các thông tin đăng nhập không được xác định trong danh sách. Nếu được kết nối với máy chủ cục bộ bằng Windows xác thực, thông tin đăng nhập windows của bạn sẽ được sử dụng để kết nối với máy chủ từ xa. Nếu được kết nối với máy chủ cục bộ bằng Xác thực Máy chủ SQL, tên đăng nhập và mật khẩu sẽ được sử dụng để kết nối với máy chủ từ xa. Trong trường hợp này, một thông tin đăng nhập có cùng tên và mật khẩu phải tồn tại trên máy chủ từ xa.

Làm thế nào để SQL Server cung cấp mật khẩu chính xác (khi giao dịch với thông tin không phải là windows) cho máy chủ khác khi tất cả các máy chủ có là Hash?

Trả lời : Tên và mật khẩu đăng nhập được chuyển đến máy chủ từ xa, cơ chế / tác vụ này được xử lý bởi SQL Engine bị ẩn và không thể bị bắt.

Nếu SQL chỉ có sẵn một hàm băm - nó có thể đăng nhập vào máy chủ từ xa bằng cách sử dụng hàm băm không? Hoặc là mật khẩu ban đầu (chưa băm) được lưu trong phiên / bộ nhớ của người dùng trong toàn bộ thời gian kết nối của họ mà SQL có thể truy xuất và chuyển đến máy chủ từ xa để đăng nhập? Nếu máy chủ có thể đăng nhập bằng hàm băm thay vì mật khẩu - điều này có thể được thực hiện trong thông tin đăng nhập bình thường hay đó hoàn toàn là một tính năng nội bộ của các máy chủ được liên kết?

Trả lời : Không thể sử dụng HASH để đăng nhập vào máy chủ SQL, SQL Engine chịu trách nhiệm xử lý quá trình đăng nhập và chúng tôi không có nhiều tài liệu xoay quanh vấn đề này.


1

Tôi tin rằng giao thức cho phép trao đổi tên người dùng và mật khẩu băm. Điều này có thể được sử dụng khi kết nối với máy chủ được liên kết, nhưng không thể được sử dụng khi kết nối từ ứng dụng thứ ba.

Để chắc chắn, công cụ cơ sở dữ liệu chỉ lưu trữ tên người dùng và mật khẩu băm. Điều này cũng được xác nhận trong http://msdn.microsoft.com/en-us/l Library / bb669066.aspx . Tôi không tin rằng mật khẩu rõ ràng được lưu trữ ở bất cứ đâu "trong phiên của người dùng".

Mật khẩu băm được sử dụng ngay cả khi kết xuất tất cả các chi tiết người dùng bằng ngôn ngữ SQL. Điều này rất hữu ích để nhân bản người dùng sang một thể hiện khác. Vì vậy, công cụ đã buộc phải xuất khẩu CREATE LOGINchấp nhận mật khẩu băm.


-3

Bạn phải cung cấp mật khẩu tên người dùng (không băm) của máy chủ từ xa khi thiết lập máy chủ được liên kết.

Khi cung cấp tên người dùng không phải windows, mật khẩu phải giống nhau trên cả hai máy chủ để hoạt động!


4
Bạn không cần phải cung cấp tên người dùng và mật khẩu của máy chủ từ xa khi thiết lập máy chủ được liên kết? đó là toàn bộ điểm của tham số @useself trên sp_addlinkedsrvlogin - vì vậy câu hỏi của tôi :)
HeavenCore
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.