Tôi đang cố gắng thiết lập ủy quyền hạn chế Kerberos để giải quyết nhảy đôi vấn đề.
Tôi đang sử dụng cấu hình Máy chủ SQL tiêu chuẩn với Tài khoản ảo (DỊCH VỤ NT\MSSQLSERVER
) làm tài khoản dịch vụ cho tất cả các phiên bản của tôi.
Khi tôi đang cố thực hiện truy vấn bước nhảy kép qua Máy chủ được Liên kết, tôi gặp phải lỗi điển hình này:
Đăng nhập không thành công đối với người dùng 'NT AUTHORITY\ANONYMOUS LOGON'
Thiết lập trông như thế này:
Máy tính người dùng> HOP> Máy chủ SQL A> HOP (Máy chủ được liên kết)> Máy chủ SQL B
Và truy vấn của tôi chỉ là cơ bản Lựa chọn
chỉ để thử nghiệm. Như thế này:
Chọn * Từ [Máy chủ B].[DB].[Scheme].[Bảng]
sử dụng Trình quản lý cấu hình Kerberos cho SQL Server Tôi đã xác minh SPN và cài đặt ủy quyền cho máy chủ của mình.
SPN được cấu hình tự động:
Và ủy quyền được đặt thành Không có
:
Tôi cũng đã kiểm tra loại xác thực mà SQL Server sử dụng. Để kiểm tra điều này, tôi đã chạy truy vấn này trên Máy chủ A (từ bài viết này):
CHỌN auth_scheme TỪ sys.dm_exec_connections Ở ĐÂU session_id = @@spid;
Và có NTLM
như một phản ứng.
Theo kết quả này, có vẻ như tôi đang thiếu cài đặt ủy quyền. Nhưng câu hỏi của tôi là làm thế nào tôi nên đi về nó?
Tôi đã đọc vô số bài báo và bài đăng và tôi vẫn không thể hiểu được. Có vẻ như bạn chỉ có thể sử dụng Tài khoản ảo mặc định cho việc này.
Nhưng mọi hướng dẫn tôi tìm thấy đều nói về Tài khoản miền hoặc Tài khoản dịch vụ được quản lý. Trong những trường hợp như vậy, chúng tôi có tài khoản này trong Active Directory, nhưng còn tài khoản ảo mặc định thì sao? Tài khoản này là tài khoản cục bộ - làm cách nào để tôi cấp quyền ủy quyền cho chúng?
Tôi có nên cấp quyền ủy quyền trên máy không? Nhưng bằng cách nào?
Tôi đã thử làm điều này. Tôi đã truy cập Active Directory, mở đối tượng Máy chủ A của mình và thực hiện việc này:
Vì vậy, nó sẽ cho phép Máy chủ A ủy quyền cho Máy chủ B. Nhưng nó vẫn không hoạt động. Và Trình quản lý cấu hình Kerberos vẫn hiển thị Không có
như kiểu ủy quyền.
Tôi đang sử dụng Windows Server 2019 và SQL Server 2019.
@CHỈNH SỬA
Tôi đã thử sử dụng cài đặt khác. Thay vì "Chỉ Kerberos" tôi đã chọn "Sử dụng bất kỳ giao thức xác thực nào" và sau 10 phút nó bắt đầu hoạt động!.
Bây giờ tất cả đều có ý nghĩa vì kết nối SSMS vẫn được thực hiện với NTLM
cài đặt "chỉ Kerberos" sẽ không hoạt động.
Nhưng câu hỏi đặt ra là tại sao nó vẫn được sử dụng NTLM
? Nó có tệ không và tôi nên cố gắng thay đổi nó? Nếu vậy - làm thế nào?