Как найти и отделить объекты от сертификата при обновлении выпусков MS-SQLServer? - PullRequest
1 голос
/ 09 сентября 2008

На последнем этапе обновления MS-SQL Server 2005 Express Edition до MS-SQL Server 2005 Enterprise Edition я столкнулся с этой ошибкой:

Сертификат не может быть отброшен, поскольку один или несколько объектов подписаны или зашифрованы с использованием его. Чтобы продолжить, исправьте проблему ...

Итак, как найти и отделить объекты, подписанные / зашифрованные с использованием этого сертификата, чтобы я мог удалить сертификат и продолжить обновление?

Я также ожидаю / предполагаю, что установка обновления предоставит новый сертификат и повторно соединит с ним те прежние объекты, или мне придется принудительно сделать это после установки.

1 Ответ

2 голосов
/ 16 сентября 2008

На форуме Microsoft есть следующий фрагмент кода для удаления сертификатов:

use msdb   
BEGIN TRANSACTION
declare @sp sysname
declare @exec_str nvarchar(1024)    
declare ms_crs_sps cursor global for select object_name(crypts.major_id) from sys.crypt_properties crypts, sys.certificates certs where crypts.thumbprint = certs.thumbprint and crypts.class = 1 and certs.name = '##MS_AgentSigningCertificate##'    
open ms_crs_sps    
fetch next from ms_crs_sps into @sp    
while @@fetch_status = 0  
begin    
if exists(select * from sys.objects where name = @sp) begin print 'Dropping signature from: ' + @sp set @exec_str = N'drop signature from ' + quotename(@sp) + N' by certificate [##MS_AgentSigningCertificate##]'   
Execute(@exec_str)
if (@@error <> 0)
begin
declare @err_str nvarchar(1024)
set @err_str = 'Cannot drop signature from ' + quotename(@sp) + '. Terminating.'
close ms_crs_sps
deallocate ms_crs_sps
ROLLBACK TRANSACTION
RAISERROR(@err_str, 20, 127) WITH LOG
return
end
end
fetch next from ms_crs_sps into @sp
end
close ms_crs_sps
deallocate ms_crs_sps
COMMIT TRANSACTION
go

http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=3876484&SiteID=17

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...