Как обновить блок CLR, не отбрасывая блок от SQL Server

Я чувствую себя настолько глупым.... Мой FTP позволял анонимным пользователям получать доступ и выполнять файлы!! Обязательно снимите флажок, Позволяют анонимные соединения. При снятии выделения с ним это предупреждает, 'Способ аутентификации Вы выбрали результаты в паролях, передаваемых по сети без шифрования данных. Кто-то пытающийся поставить под угрозу Вашу безопасность системы мог использовать протокол анализатор для исследования паролей пользователя во время процесса autehntication. Для большего количества детали об аутентификации пользователя...'

Я предполагаю, что должен установить SSL для FTP.

18
задан 30 August 2016 в 17:57
3 ответа

Думаю, вы ищете альтернативную сборку . Из BOL:

Если указано предложение FROM, ALTER ASSEMBLY обновляет сборку что касается последних копий предоставленных модулей. Так как могут быть функции CLR, хранимые процедуры, триггеры, типы данных, и определяемые пользователем агрегатные функции в экземпляре SQL Server которые уже определены для сборки, ALTER ASSEMBLY оператор повторно связывает их с последней реализацией сборки. Чтобы выполнить эту повторную привязку, методы, которые сопоставляются с функциями CLR, хранимые процедуры и триггеры должны по-прежнему существовать в измененном сборка с такими же подписями. Классы, реализующие CLR определяемые пользователем типы и определяемые пользователем агрегатные функции должны по-прежнему удовлетворяют требованиям для того, чтобы быть определяемым пользователем типом или агрегатом.

Один из примеров на той же странице, похоже, поможет:

ALTER ASSEMBLY ComplexNumber 
FROM 'C:\Program Files\Microsoft SQL Server\90\Tools\Samples\1033\Engine\Programmability\CLR\UserDefinedDataType\CS\ComplexNumber\obj\Debug\ComplexNumber.dll' 
16
ответ дан 2 December 2019 в 20:24

я нашел подсказку на ответ на Stackoverflow :

ALTER ASSEMBLY CLRFunctions FROM 'c:\foos\CLRFunctions.dll';
1
ответ дан 2 December 2019 в 20:24

Для добавления к ответу Бена Тюля, это можно достаточно просто удаленно через графический интерфейс SQL Server Management Studio.

  1. В окне Object Explorer для вашей базы данных -> Программируемость, щелкните правой кнопкой мыши по сборкам и выберите 'Новая сборка...'.

  2. Просмотрите вашу обновленную DLL.

  3. Вместо того, чтобы нажимать 'OK' (что приведет к ошибке), так как одноименная сборка уже существует) нажмите кнопку "Script" в верхней части окна New Assembly
    .  
    Вы будете загружены в SQL-запрос, который включает строку 'CREATE ASSEMBLY', за которой последует огромный блок, который является DLL, которую вы только что выбрали.

  4. Измените 'CREATE' на 'ALTER', а затем выполните!

Сценарий также создал для меня строку 'AUTHORIZATION', которую мне пришлось удалить перед выполнением; ваш пробег может варьироваться.

Надеюсь, это поможет кому-нибудь еще без доступа файловой системы к его серверам.

Надеюсь, Microsoft когда-нибудь сделает это первоклассной операцией в SSMS, но это довольно простое решение проблемы до тех пор, пока они не сделают этого.

7
ответ дан 2 December 2019 в 20:24

Теги

Похожие вопросы