Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline mrhumster  
#1 Оставлено : 11 июля 2018 г. 12:31:53(UTC)
mrhumster

Статус: Участник

Группы: Участники
Зарегистрирован: 04.08.2009(UTC)
Сообщений: 19
Откуда: Омск

Добрый день. При обновлении КриптоПро УЦ с версии 2.0.5938 до 2.0.6142 возникла ошибка. Когда мастер установки просит обновить базу ЦС выпадает сообщение Invalid checksum.
Версия SQL Server: 13.0.4001
База не битая, проверялась несколько раз.
С базами ЦР все прошло без ошибок.
В чем может быть проблема?
Код:
$SqlInstance = '.\CPCC'
$SqlDatabaseName = 'CertificateService.Database'
$WebSite = '1'

Install-CA -SqlInstance $SqlInstance -SqlDatabaseName $SqlDatabaseName -WebSite $WebSite -KeepDatabase
Start-Sleep -Seconds '4'
New-Item -Path 'CA:\' -Repair
$CADrive = 
Get-Item -Path 'CA:\'
ПОДРОБНО: Строка соединения: Data Source=.\CPCC;Integrated Security=True;Pooling=True;MultipleActiveResultSets=True
ПОДРОБНО: CryptoPro.DbMigrator Information: 0 : Экземпляр SQL Server: .\CPCC. Целевая база данных: CertificateService.Database.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : Контекст базы данных изменен на "CertificateService.Database".

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : Отключение асинхронного режима обновления статистики (AUTO_UPDATE_STATISTICS_ASYNC)...

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : Завершение фоновых заданий обновления статистики...

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : Асинхронный режим обновления статистики отключен, фоновые потоки заданий обновления статистики завершены.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : База данных CertificateService.Database переводится в режим SINGLE_USER...

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : Неуточненные транзакции проходят откат. Предварительно выполнение отката: 0%.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : Неуточненные транзакции проходят откат. Предварительно выполнение отката: 100%.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : База данных переведена в режим SINGLE_USER.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : Выполняется создание резервной копии базы данных...

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : Имя файла резервной копии: CertificateService.Database_2018-07-11T14-54-41.103.bak

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : 10 проц. обработано.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : 20 проц. обработано.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : 30 проц. обработано.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : 40 проц. обработано.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : 50 проц. обработано.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : 60 проц. обработано.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : 70 проц. обработано.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : 80 проц. обработано.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : 90 проц. обработано.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : Обработано 116928 страниц для базы данных "CertificateService.Database", файл "CertificateService.Database" для файла 1.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : 100 проц. обработано.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : Обработано 3 страниц для базы данных "CertificateService.Database", файл "CertificateService.Database_log" для файла 1.

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : BACKUP DATABASE успешно обработал 116931 страниц за 45.041 секунд (20.281 MБ/сек).

ПОДРОБНО: CryptoPro.DbMigrator Verbose: 0 : Резервная копия базы данных успешно создана.

ОШИБКА: Invalid checksums.
Invalid checksums.


System.Management.Automation.CmdletInvocationException: Invalid checksums.
Invalid checksums.
 ---> CryptoPro.DbMigrator.DatabaseIncompatibleException: Invalid checksums. ---> System.Data.SqlClient.SqlException: Invalid checksums.
   в System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   в System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   в System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
   в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   в System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   в CryptoPro.DbMigrator.Context.ExecuteNonQuery(String sqlCommand)
   в CryptoPro.DbMigrator.Context.CheckDatabaseСompatibility()
   --- Конец трассировки внутреннего стека исключений ---
   в CryptoPro.DbMigrator.Context.CheckDatabaseСompatibility()
   в CryptoPro.DbMigrator.Migrator.VerifyDatabaseChecksums(Context ctx)
   в CryptoPro.DbMigrator.Migrator.UpgradeDatabase(MigrationPackage package, Context ctx, Int32 targetVersion)
   в CryptoPro.DbMigrator.Migrator.DeployVersion(MigrationPackage package, String targetDatabase, Int32 targetVersion, Boolean createNew, Boolean upgradeExisting, Boolean makeBackup, DeployOptions options)
   в CryptoPro.PkiClient.PkiCmdletBase.Deploy(String packageFileName, String packageDir, String databaseName, String connectionString, Boolean createNew, Boolean upgradeExisting, Boolean makeBackup)
   в CertificateService.Commands.InstallCACommand.InstallCASqlDatabase()
   в CertificateService.Commands.InstallCACommand.EndProcessingEx()
   в CryptoPro.PkiClient.PkiCmdletBase.EndProcessing()
   --- Конец трассировки внутреннего стека исключений ---
   в System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)
   в System.Management.Automation.PowerShell.Worker.ConstructPipelineAndDoWork(Runspace rs, Boolean performSyncInvoke)
   в System.Management.Automation.PowerShell.Worker.CreateRunspaceIfNeededAndDoWork(Runspace rsToUse, Boolean isSync)
   в System.Management.Automation.PowerShell.CoreInvokeHelper[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output, PSInvocationSettings settings)
   в System.Management.Automation.PowerShell.CoreInvoke[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output, PSInvocationSettings settings)
   в System.Management.Automation.PowerShell.Invoke(IEnumerable input, PSInvocationSettings settings)
   в CertificateService.Wizards.ScriptRunner.Run()
   в CertificateService.Wizards.FinishPage.OnSelectedPageStepIn(Object sender, WizardPageStepInEventArgs e)
HResult = -2146233087 (0x80131501)
=== InnerException #2 ===
CryptoPro.DbMigrator.DatabaseIncompatibleException: Invalid checksums. ---> System.Data.SqlClient.SqlException: Invalid checksums.
   в System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   в System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   в System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
   в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   в System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   в CryptoPro.DbMigrator.Context.ExecuteNonQuery(String sqlCommand)
   в CryptoPro.DbMigrator.Context.CheckDatabaseСompatibility()
   --- Конец трассировки внутреннего стека исключений ---
   в CryptoPro.DbMigrator.Context.CheckDatabaseСompatibility()
   в CryptoPro.DbMigrator.Migrator.VerifyDatabaseChecksums(Context ctx)
   в CryptoPro.DbMigrator.Migrator.UpgradeDatabase(MigrationPackage package, Context ctx, Int32 targetVersion)
   в CryptoPro.DbMigrator.Migrator.DeployVersion(MigrationPackage package, String targetDatabase, Int32 targetVersion, Boolean createNew, Boolean upgradeExisting, Boolean makeBackup, DeployOptions options)
   в CryptoPro.PkiClient.PkiCmdletBase.Deploy(String packageFileName, String packageDir, String databaseName, String connectionString, Boolean createNew, Boolean upgradeExisting, Boolean makeBackup)
   в CertificateService.Commands.InstallCACommand.InstallCASqlDatabase()
   в CertificateService.Commands.InstallCACommand.EndProcessingEx()
   в CryptoPro.PkiClient.PkiCmdletBase.EndProcessing()
HResult = -2146233088 (0x80131500)
=== InnerException #3 ===
System.Data.SqlClient.SqlException (0x80131904): Invalid checksums.
   в System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   в System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   в System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
   в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   в System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   в CryptoPro.DbMigrator.Context.ExecuteNonQuery(String sqlCommand)
   в CryptoPro.DbMigrator.Context.CheckDatabaseСompatibility()
ClientConnectionId:a3a9d955-e73a-442a-9882-4807f8f44bfb
Error Number: 50000, State: 1, Class: 16
HResult = -2146232060 (0x80131904)
Invalid checksums.
Invalid checksums.


Решено!

Выполните на БД ЦС:
Код:

DROP PROCEDURE dbo.sp_alterdiagram; 
DROP PROCEDURE dbo.sp_creatediagram; 
DROP PROCEDURE dbo.sp_dropdiagram; 
DROP PROCEDURE dbo.sp_helpdiagramdefinition; 
DROP PROCEDURE dbo.sp_renamediagram; 
DROP PROCEDURE dbo.sp_upgraddiagrams; 
DROP PROCEDURE dbo.sp_helpdiagrams;
DROP FUNCTION dbo.fn_diagramobjects;
DROP TABLE dbo.sysdiagrams;

После попробуйте обновиться.

Отредактировано пользователем 12 июля 2018 г. 11:40:35(UTC)  | Причина: Не указана

Offline Захар Тихонов  
#2 Оставлено : 12 июля 2018 г. 20:13:15(UTC)
Захар Тихонов

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 3,247
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 39 раз
Поблагодарили: 577 раз в 554 постах
Здравствуйте.

Ошибка обновления связана с включением диаграмм на БД УЦ. Скрипт из решения их удаляет.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline 123014902  
#3 Оставлено : 9 ноября 2023 г. 15:37:56(UTC)
123014902

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.11.2023(UTC)
Сообщений: 5
Российская Федерация
Откуда: Москва

Добрый день.

Тестируем переход на новые версии ОС и СУБД.

Сервер 1 старый
Версия ОС Windows Server 2012 R2 Datacenter SQL Server 2014 12.0.6449.1
Версии продуктов КРИПТО-ПРО CSP 4.0.9963 УЦ 2.0.6904.0000
Сервер 2 новый
Версия ОС Windows Server 2016 Datacenter SQL Server 2017 14.0.3465.1
Версии продуктов КРИПТО-ПРО CSP 5.0.12600 УЦ 2.0.6904.0000

Описание проблемы
На сервере 1 созданы резервные копии БД УЦ. При попытке восстановить ЦС на сервере 2
базы восстанавливаются через SSMS успешно, но на этапе разворачивания ЦС проверка CryptoPro.DbMigrator
завершается с ошибкой, аналогичной описанной выше "Invalid checksums".

Удивительно то, что ранее эти же действия были выполнены успешно и неоднократно.
Теперь на сервере 2
- бэкапы БД сервера 1 от августа успешно разворачиваются,
- новый пустой УЦ с имеющимися ключами и сертификатами также создается, бэкапится и восстанавливается.

Но бэкапы, созданные в октябре и "вчера" не удается восстановить.
За это время 01 ноября был выведен из эксплуатации по сроку действия один из ключей ЦС, сформирован финальный СОС.
Также ставились патчи ОС и SQL серверов.

Куда копать?
Offline Захар Тихонов  
#4 Оставлено : 9 ноября 2023 г. 17:05:39(UTC)
Захар Тихонов

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 3,247
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 39 раз
Поблагодарили: 577 раз в 554 постах
Или кто-то что-то изменил в БД после 1 августа, что аж суммы теперь не совпадают.
Или включили диаграммы.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline 123014902  
#5 Оставлено : 10 ноября 2023 г. 10:00:16(UTC)
123014902

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.11.2023(UTC)
Сообщений: 5
Российская Федерация
Откуда: Москва

А не мог вычислитель контрольных сумм сломаться? Из-за какой-нить LSA protected mode или еще чего.
Есть какой-то контрольный пример, чтобы проверить?
Offline Захар Тихонов  
#6 Оставлено : 10 ноября 2023 г. 11:29:14(UTC)
Захар Тихонов

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 3,247
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 39 раз
Поблагодарили: 577 раз в 554 постах
Пример чего, как сломать контрольные суммы?
Пришлите вывод из SSMS на проблемной БД.
SELECT DATABASEPROPERTYEX('CertificateService.Database', 'IsBrokerEnabled') AS 'IsDiagramEnabled'
Техническую поддержку оказываем тут.
Наша база знаний.
Offline 123014902  
#7 Оставлено : 10 ноября 2023 г. 11:54:27(UTC)
123014902

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.11.2023(UTC)
Сообщений: 5
Российская Федерация
Откуда: Москва

Автор: Захар Тихонов Перейти к цитате

Пришлите вывод из SSMS на проблемной БД.
SELECT DATABASEPROPERTYEX('CertificateService.Database', 'IsBrokerEnabled') AS 'IsDiagramEnabled'


Выполнил на обоих серверах, результаты одинаковые:

IsDiagramEnabled
0

В свойствах БД Broker Enabled = False
Offline Захар Тихонов  
#8 Оставлено : 10 ноября 2023 г. 12:52:28(UTC)
Захар Тихонов

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 3,247
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 39 раз
Поблагодарили: 577 раз в 554 постах
Значит кто-то влез в БД. Может таблицу себе создал или еще что-то. Сравните с августовской, которая работает корректно.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline 123014902  
#9 Оставлено : 10 ноября 2023 г. 16:13:20(UTC)
123014902

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.11.2023(UTC)
Сообщений: 5
Российская Федерация
Откуда: Москва

Кажется нашел причину. Из домена мне на SQL сервер и в БД приехал новый пользователь "централизованный мониторинг". И он принес с собой новую встроенную процедуру, что-то про "users_login_report". Удалил из CertificateService.Database процедуру - ошибка Invalid Checksums ушла.

Надо ли зачищать другие БД (RegistrationService.Database, RegistrationService.AspNet) от этих процедур?
Offline Захар Тихонов  
#10 Оставлено : 13 ноября 2023 г. 10:08:19(UTC)
Захар Тихонов

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 3,247
Мужчина
Тонга
Откуда: Калининград

Сказал «Спасибо»: 39 раз
Поблагодарили: 577 раз в 554 постах
Конечно, с ними будет аналогичная проблема.
Техническую поддержку оказываем тут.
Наша база знаний.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (3)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.