Temos alguns bancos de dados SQL Server que precisam ter uma opção confiável definida como 'ON' para permitir o carregamento de assemblies externos, mas sempre que há algum patch de segurança, a opção é desativada e o aplicativo é interrompido.
Não quero criar vários trabalhos de agente SQL para executar o set trustworthy on
comando constantemente, então estou tentando desenvolver um cursor que execute esse comando nos cinco bancos de dados.
Isso é o que tenho agora, mas estou recebendo um erro ao dizer que confiável não é uma opção SET reconhecida. Alguém poderia dar uma olhada e ajudar a consertar isso?
Executando no SQL Server 2019 Enterprise Edition.
Declare @db_name varchar (100)
Declare @command nvarchar (200)
Declare database_cursor cursor for
Select name from master.sys.sysdatabases
Where name in ('db1', 'db2', 'db3', 'db4', 'db5')
Open database_cursor
Fetch next from database_cursor into @db_name
While @@fetch_status = 0
Begin
Select @command = 'ALTER DATABASE' + ''''+ @DB_NAME+ '''' + 'SET TRUSTWORTHY ON'
PRINT @COMMAND
EXEC SP_EXECUTESQL @COMMAND
FETCH NEXT FROM DATABASE_CURSOR INTO @DB_NAME
END
CLOSE DATABASE_CURSOR
DEALLOCATE DATABASE_CURSOR