Lỗi: Không thể tạo bối cảnh SSPI


8

Khi ai đó cố gắng kết nối với phiên bản SQL Server, lỗi sẽ xuất hiện:

Không thể tạo bối cảnh SSPI.

Hôm qua chúng tôi đã mất điện (không biết cách nói biểu thức này bằng tiếng Anh) và tôi đã phải tắt máy chủ của chúng tôi.

Tìm kiếm câu trả lời, tôi tìm thấy điều này:

Sự cố kết nối SQL Server 2008: không thể tạo bối cảnh SSPI

Nhưng nó không giúp tôi, vì họ làm việc tốt cho đến ngày hôm qua. Tôi không muốn thay đổi bất cứ điều gì. Nhưng nếu phải, tôi sẽ thay đổi nó.

Quan sát: Tôi không thể khởi động lại máy chủ bây giờ.


Chỉnh sửa: Vì tôi trả lời, chúng tôi không có lỗi.


Tôi không thể khởi động lại máy chủ, chúng tôi có hơn 500 người dùng trực tuyến. Tôi thực sự không thể biết phải làm gì. Không có gì hữu ích trên internet.
Racer SQL

1
Đặt chính sách nhóm từ chính máy chủ để tự động thay đổi thời gian cho người dùng. Nếu bạn không muốn khởi động lại máy chủ để buộc các thay đổi trong chính sách nhóm bạn có thể sử dụng gpupdate /force. Thông tin thêm về chủ đề đẹp này ở đây Nhưng tôi rất khuyến khích nhiệm vụ này sẽ được trao cho người quản lý máy chủ.
Nelz

Câu trả lời:


14

'Không thể tạo bối cảnh SSPI' là một lỗi chung. Nó có thể được gây ra bởi nhiều vấn đề, như mật khẩu bị lỗi, trôi đồng hồ, quyền truy cập Active Directory, không đăng ký SPN, v.v.

Không có giải pháp cho vấn đề này. "Giải pháp" duy nhất là điều tra nguyên nhân, theo KB811889 và / hoặc Khắc phục lỗi Kerberos . Áp dụng giải pháp này hay giải pháp khác từ các tài nguyên Internet ngẫu nhiên, không hiểu nguyên nhân, có thể hoặc không thể giải quyết vấn đề, có thể hoặc không gây ra sự thất vọng, có thể hoặc không thể gây ra thiệt hại không thể khắc phục.


2
Trả lời-> Áp dụng một giải pháp này hoặc giải pháp khác từ các tài nguyên Internet ngẫu nhiên, không hiểu nguyên nhân, có thể hoặc không thể giải quyết vấn đề, có thể hoặc không gây ra sự thất vọng, có thể hoặc không thể gây ra thiệt hại không thể khắc phục. Trả lời -> "Chúng tôi đã thay đổi người dùng SQL DỊCH VỤ thành một" Quản trị viên tên miền "." -ooooo-kaay rồi.
matao

3

Chúng tôi đã thay đổi SQL SERVICE userthành một " Domain Admin".

Tôi đã thực hiện một số nghiên cứu để biết tại sao điều này xảy ra. Nó nói rằng khi bạn tắt dịch vụ, bạn cần một tài khoản với các đặc quyền để tạo SPN mới (khi nó bật lại). Nếu bạn bắt đầu một dịch vụ mà không có dịch vụ đó, nó sẽ hiển thị trong CANNOT TẠO SSPI TIẾP THEO.

chúng tôi đang thay đổi các đặc quyền của tài khoản hệ thống của chúng tôi.

Hy vọng nó sẽ giúp được ai đó.


8
Thực hành tốt cho các tài khoản dịch vụ là cung cấp cho họ ít đặc quyền nhất có thể. Cung cấp cho quản trị viên tên miền tài khoản dịch vụ của bạn ngược lại với cách tiếp cận đó - tôi thực sự khuyên bạn không nên làm như vậy, từ quan điểm bảo mật.
Mike

2

Chúng tôi đã gặp sự cố này sau khi chúng tôi lấy cơ sở dữ liệu từ SẢN PHẨM và khôi phục nó trong QA. Ứng dụng của chúng tôi đã gọi ba cơ sở dữ liệu trên ba máy chủ và ngoài ra điều đó không phức tạp.

Hóa ra SPN giả (Tên hiệu trưởng dịch vụ) đang xâm nhập vào tài khoản dịch vụ mà theo đó kết nối nên được chạy. Chúng tôi đã phát hiện ra điều này bằng cách sử dụng Tệp chương trình> Trình quản lý cấu hình Microsoft Kerberos.

Cách khắc phục ngắn hạn là sử dụng Trình quản lý cấu hình SQL Server và thay đổi các kết nối SQL Server và SQL Server Agent từ tài khoản dịch vụ thành 'LocalSystem' trong 'Sử dụng tài khoản được xây dựng'.


1

Không thể tạo bối cảnh SSPI có thể có nghĩa chính xác đó. Khi một máy khách kết nối với máy chủ SQL, nó sử dụng một phương thức tạo bao gồm FQDN và cổng máy chủ loại dịch vụ (MsQueryauss). Nó sử dụng DNS để tạo tên máy chủ vì vậy nếu nó giải quyết tên không chính xác do CNAME hoặc tệp máy chủ, v.v ... thì việc tạo sẽ thất bại. Ping máy chủ mong muốn và xem những gì bạn nhận được trả lời. Nếu đó không phải là FQDN của máy chủ SQL thì SPN sẽ được tạo không chính xác gây ra lỗi này.


1

Trong một số trường hợp, bạn sẽ gặp lỗi này do cài đặt SPN. Ví dụ: nếu bạn đang thực hiện kiểm tra khắc phục thảm họa cho một máy chủ mới, bạn có thể gặp lỗi SSPI trong khi kết nối với SQL Server. Điều kỳ lạ hơn nữa là bạn có thể kết nối bằng SQL Server Management Studio nhưng bạn không thể kết nối qua ODBC hoặc OLEDB. Có thể có một cách giải quyết tạm thời có thể sẽ cho phép bạn truy cập cơ sở dữ liệu.

Giải pháp thay thế : Trên mỗi máy tính khách đang cố gắng kết nối với Máy chủ SQL, hãy tạo một mục trong tệp máy chủ của mỗi máy trạm. Cơ chế chính xác mà điều này sử dụng để khắc phục sự cố chưa được xác nhận nhưng có thể là việc sử dụng nó sẽ ghi đè lên sự cần thiết của SPN.

Mặc dù điều này không được đảm bảo để khắc phục cho tất cả các trường hợp, nhưng rất có thể nó sẽ giúp bạn sao lưu và chạy. Điều này không nên được coi là một sửa chữa vĩnh viễn. Bạn nên giải quyết SPN hoặc các vấn đề khác trong một tình huống lý tưởng. Tuy nhiên, nếu bạn gặp sự cố với các máy Windows cũ chạy hệ điều hành không được hỗ trợ hoặc nếu bạn chỉ đang thực hiện bằng chứng kiểm tra khắc phục thảm họa khái niệm, điều này sẽ đưa bạn đến nơi cần bật đèn hoặc sản xuất sao lưu và chạy.


Tôi chỉ muốn nhắc lại rằng đây là một cách giải quyết. Cách giải quyết không phải là bản sửa lỗi vĩnh viễn. Nếu bạn muốn gây ra ít vấn đề hơn trong tương lai, bạn nên khắc phục vấn đề tiềm ẩn, theo kinh nghiệm của tôi, phải làm với SPN.
Jason Geiger

Một mục ánh xạ tên máy đến IP máy?
Bill Greer

1

Tôi đã gặp sự cố này và nó đã được giải quyết bằng cách xóa mục SPN trong các thuộc tính của tài khoản máy tính trong AD cho máy chủ

Tìm tài khoản máy trong Người dùng và Máy tính AD (Chế độ xem nâng cao)

nhập mô tả hình ảnh ở đây

Sau đó xóa hai mục trong servicePrincipalName cho MSSQLSvc

nhập mô tả hình ảnh ở đây


0

Tôi đã có một vấn đề tương tự. Cuối cùng tôi đã phải xóa các mục từ thông tin SPN trên tài khoản máy tính trong ADSIEdit.

Sau khi xóa các mục, tôi khởi động lại dịch vụ SQL và nó đã đăng ký SPN với tài khoản tài nguyên miền mà tôi đã tạo. Sau đó tôi đã có thể truy cập SQL Server từ xa.


0

Đối với tôi, giải pháp là chạy SQL Studio với tư cách là người dùng miền với lệnh này:

runas / người dùng: OtherDomain \ Người dùng SSMS.exe


0

Tôi đã trải nghiệm vấn đề này chỉ gần đây. Tôi đang chạy với tài khoản NT DỊCH VỤ và khi tôi chuyển sang sử dụng tài khoản dịch vụ, tôi không còn có thể kết nối bằng SSMS với tên máy hoặc FQDN. Tôi có thể kết nối với địa chỉ IP. Với một số hoạt động đào, tôi thấy rằng SPN trong Active Directory cho phiên bản SQL đã được đăng ký trên máy. Khi tôi xóa cái này và sau đó thêm nó vào tài khoản dịch vụ và khởi động lại máy SQL, mọi thứ sẽ hoạt động như bình thường. Rất vui được cung cấp thêm chi tiết nếu cần.

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.