Подтвердить что ты не робот

Ошибка SQL Server после обновления: токен, предоставленный функции, недействителен

Я использовал свою машину (и SSMS), и все работало нормально. Я перезагрузился, после чего Windows 10 применила следующие обновления:

Windows Malicious Software Removal Tool for Windows 8, 8.1, 10 and Windows Server 2012, 2012 R2, 2016 x64 Edition - April 2017 (KB890830)
Security Update for Adobe Flash Player for Windows 10 Version 1607 (for x64-based Systems) (KB4018483)
Security Update for Microsoft Silverlight (KB4017094)
Cumulative Update for Windows 10 Version 1607 for x64-based Systems (KB4015217)

Теперь, когда я пытаюсь войти в SSMS, я получаю следующую ошибку:

Соединение с сервером было успешно установлено, но затем во время процесса регистрации произошла ошибка. (поставщик: поставщик SSL, ошибка: 0 - токен, предоставленный функции, является недопустимым (Microsoft SQL Server)

Недопустимый токен, указанный в функции

Похоже, что это связано с безопасностью, но я не знаю, что делать, чтобы исправить это. Моя машина использует Windows Server Essentials для резервного копирования (зеленый и зеленый).

4b9b3361

Ответ 1

Я столкнулся с той же проблемой с SQL Server. Я сделал несколько шагов, и моя проблема была решена. Эти шаги как -

  1. Нажмите "Пуск", нажмите "Выполнить", введите regedit в поле "Открыть" и нажмите кнопку "ОК".
  2. Найдите и щелкните следующий подраздел реестра: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL

  3. В меню "Правка" выберите пункт "Создать" и нажмите "Значение DWORD".

  4. Введите SendExtraRecord в качестве имени значения DWORD и нажмите клавишу ВВОД.
  5. Щелкните правой кнопкой мыши SendExtraRecord и выберите "Изменить".
  6. В поле "Значение" введите 2, чтобы отключить разделение записи в schannel, а затем нажмите "ОК".
  7. Выход из редактора реестра. Готово!

Ответ 2

Выполните команду в командной строке с правами администратора и перезагрузитесь.

netsh winsock reset

Ответ 3

Я просто хотел ответить на этот вопрос для полноты. Я не уверен, что любой из предыдущих ответов решил проблему для меня, так что здесь идет...

Я постоянно получал следующую ошибку при использовании SSMS v18.0 при попытке подключиться к одной из наших баз данных QA: токен, предоставленный функции, недействителен

Оказывается, наши сертификаты были только что обновлены и неизвестны мне в то время, когда они были обновлены с помощью нового алгоритма подписи (от RSA/SHA256 до RSA/SHA512). Возможным решением было изменить список включенных алгоритмов в реестре (Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010003), а затем перезагрузить компьютер: включить реестр RSA/SHA512

Ответ 4

Кажется, что другим удалось добиться успеха, просто перезапустив машину IIS.

Это будет так просто:

Нажмите "Пуск", выберите "Выполнить" IISReset и нажмите "ОК". SOURCE (Microsoft)

В противном случае в SSCM есть некоторые настройки, которые могут потребоваться для обеспечения надлежащего набора, и которые могут быть виновниками широкого спектра проблем:

  • убедитесь, что включен протокол общей памяти.
  • гарантировать, что протокол Named Pipes включен.
  • гарантировать, что TCP/IP включен, и впереди Именованные каналы в settings SOURCE (SO)

(Эти настройки указаны в вашем SSCM). Существует также хорошая запись в блоге об установке этих параметров в качестве решения для другой ошибки.

Надеюсь, это поможет искусить некоторые идеи! Похоже, что это довольно распространенная проблема без очень большого количества конкретных предложений для решений.

Если никто из них не работает (я думал, что буду предлагать им должную осмотрительность, если они разрешат проблему), вам, возможно, придется изучить, что изменяется Windows Malicious Software Removal Tool.

Другие люди столкнулись с проблемами с использованием SSMS после подобных обновлений в прошлом, и они, похоже, предлагают Internet Explorer в качестве правонарушителя. Чтобы исправить это, они незарегистрировались и зарегистрировали свои ieproxy.dll.

Они предлагают делать:

  • Запустить командную строку в административном режиме. Перейдите в C:\Program Files\Internet Explorer или c:\Program Files (x86)\Internet Explorer, если у вас есть Win x64.
  • Выполнить regsvr32 /u ieproxy.dll (это может вызвать ошибку, если оно не загружено)
  • Выполнить regsvr32 ieproxy.dll ИСТОЧНИК (SO)

Кажется, это было успешным для них, надеюсь, что это сработает!

Ответ 5

Просто отвечая на мой вопрос для потомков:

Откройте MMC и выберите надстройку сертификатов для локального компьютера. Откройте сертификат сервера и отключите аутентификацию сервера и клиента. Перезагрузите SQL-сервер. Законченный.