Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сборка CLR с UNSAFE  [new]
CLR
Guest
Сборка CLR с безапасностью UNSAFE создает новый процесс (внешний, например powershell.exe).
Будет ли созданный процесс виден в дисппетчере задач винды ?
И если будет, то что будет, если его прибить?
27 фев 18, 16:44    [21222649]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1369
CLR,

будет виден.

если прибьете ничего критичного не будет если у вас в дальнейшей логике не идет обращений к экземпляру процесса. иначе словите исключение.
27 фев 18, 17:43    [21222964]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
CLR
Guest
Спасибо
27 фев 18, 17:55    [21223025]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3708
CLR
Сборка CLR с безапасностью UNSAFE создает новый процесс (внешний, например powershell.exe).
Будет ли созданный процесс виден в дисппетчере задач винды ?
И если будет, то что будет, если его прибить?


это просто песня
27 фев 18, 18:29    [21223137]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7765
Ролг Хупин,

дык законы физики не запрещают. Кого волнует этика, принципы и последствия?
27 фев 18, 18:32    [21223143]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
CLR
Guest
А по существу есть что сказать?
27 фев 18, 19:03    [21223216]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1369
CLR,

по существу уже сказано.
+
просто не понятно зачем оно вам сдалось "есть через задний проход"?
27 фев 18, 19:10    [21223241]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
CLR
Guest
felix_ff,

ну, я это не Вам, я хотел по существу услышать от неких умников, от которых здесь пользы 0.0000.

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

"Зачем?" - это вопрос больше философский. Если это не опасно для сиквела, то почему бы и не использовать такую архитектуру. Цель - вызывать скрипты на powershell из tsql, который будет возвращать строку.
27 фев 18, 19:22    [21223263]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1369
CLR,

ну а представьте себе что у вас powershell-скрипт к примеру уйдет в забытье(по любой причине), а хранимка иницирующая его процесс ждет от него ответа.
Будете ждать пока вручную не полезете на сервер процесс прибивать.

Я это к чему, довольно сомнительное удовольствие децентрализации операций.
Если вам необходим запуск внешних приложений по какой то логике с сиквела, я бы на вашем месте посмотрел в сторону service broker с внешней активацией.
27 фев 18, 19:42    [21223297]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1369
+

и кстати: потенциально для сервера вредна любая сборка с permission_set > SAFE

в МС специально назвали UNSAFE - что бы если что все шишки Вам
27 фев 18, 19:49    [21223307]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
cossack5
Member

Откуда:
Сообщений: 496
CLR,
Если у вас 2016-й сиквел, можно выполнять скрипты на R (через sp_execute_external_script). В 2017-й версии добавлен python. MS очень продвигала этот способ для исполнения скриптов.
28 фев 18, 04:14    [21223748]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7765
+
Класс :) Некто бьется головой об стену, ему говорят - не делай так, плохо будет. А он отвечает - говорите по существу, я пробиваю головой стену.
28 фев 18, 12:44    [21224506]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
CLR
Guest
Владислав Колосов,

у вас аргументы есть? или мне на слово вам верить нужно ?
28 фев 18, 13:35    [21224705]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
CLR
Guest
felix_ff
CLR,

ну а представьте себе что у вас powershell-скрипт к примеру уйдет в забытье(по любой причине), а хранимка иницирующая его процесс ждет от него ответа.
Будете ждать пока вручную не полезете на сервер процесс прибивать.

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


если зависнет - да, согласен, это минус. Но меня больше интересовал момент живучести сиквела, дабы не уронить сам сиквел.

с service broker интересный вариант, но мне нужен синхронный вызов, например я хочу получить результат от веб-сервера, например json.
28 фев 18, 13:40    [21224730]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
CLR
Guest
cossack5
CLR,
Если у вас 2016-й сиквел, можно выполнять скрипты на R (через sp_execute_external_script). В 2017-й версии добавлен python. MS очень продвигала этот способ для исполнения скриптов.


вот это интересно, спасибо!
28 фев 18, 14:21    [21224953]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7765
CLR,

лекции читать неохота, но сами поймете, когда потребуется всё это удерживать на плаву хотя бы на полупромышленном уровне, 24/7 с проектом, планами публикаций и прочей атрибутикой.
2 мар 18, 13:55    [21232280]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7765
О, совсем забыл о непрерывной интеграции.
2 мар 18, 13:55    [21232286]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
CLR
Guest
Владислав Колосов
CLR,

лекции читать неохота, но сами поймете, когда потребуется всё это удерживать на плаву хотя бы на полупромышленном уровне, 24/7 с проектом, планами публикаций и прочей атрибутикой.


Владислав Колосов
лекции читать неохота, но сами поймете, когда потребуется всё это удерживать на плаву хотя бы на полупромышленном уровне, 24/7 с проектом, планами публикаций и прочей атрибутикой.


Если я вас правильно понял, то угроза не в в том, что сиквел начнет падать, а в сложности сопровождения и развития?

Ну ок, если рассмотреть какие есть инструменты ETL. ssis-пакеты - от них начал отказываться более двух лет назад, сначала в сторону clr, а сейчас в сторону powershell. на clr несколько библиотек (в основном абстрактных, для вызова/транспорта с внешними источниками) все остальное сейчас переводится на powershell. При прямых руках нет проблем на промышленном уровне с 24/7 и разработка в целом проще и быстрее, чем с ssis.


А что с непрерывной интеграцией?
2 мар 18, 17:07    [21233095]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
northern
Member

Откуда:
Сообщений: 70
А почему нельзя используя sp_execute_external_script запускать скрипты PowerShell ?
8 мар 18, 11:26    [21244712]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1369
northern,

наверное потому что поддерживаемые языки на текущий момент для sp_execute_external_script - phyton и R?
или вы предлагаете писать обертку для запуска ps?
8 мар 18, 16:28    [21245066]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
northern
Member

Откуда:
Сообщений: 70
felix_ff
наверное потому что поддерживаемые языки на текущий момент для sp_execute_external_script - phyton и R?
или вы предлагаете писать обертку для запуска ps?


Так именно это и вызывает недоумение - иметь такой мощный инструмент (pws) и не встроить его в sp_execute_external_script
в джобах агента ведь можно вызывать скрипт pws.
8 мар 18, 21:26    [21245359]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
northern
Member

Откуда:
Сообщений: 70
а люди костыли строгают ))
8 мар 18, 21:27    [21245361]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
northern
Member

Откуда:
Сообщений: 70
CLR, смотри как можно:

execute sp_execute_external_script 
@language = N'Python',
@script = N'
import subprocess
 
proc = subprocess.Popen(["powershell", "Get-Variable | ConvertTo-Json"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = proc.communicate()

out = out.decode("cp866")
err = err.decode("cp866")

json = out
if len(err) > 0: 
    json = "Ошибка! " + err
', 
@params = N'@r_rowsPerRead INT, @json NVARCHAR(MAX) OUTPUT',
@r_rowsPerRead = @RowsPerRead,
@json = @json OUTPUT

SELECT @json
8 мар 18, 23:13    [21245464]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
northern
Member

Откуда:
Сообщений: 70
DECLARE не скопировал...

--пример использования питона для получения результата (json) из powershell
DECLARE @RowsPerRead INT = 5
DECLARE @json NVARCHAR(MAX)

execute sp_execute_external_script 
@language = N'Python',
@script = N'
import subprocess
 
proc = subprocess.Popen(["powershell", "Get-Variable | ConvertTo-Json"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = proc.communicate()

out = out.decode("cp866")
err = err.decode("cp866")

json = out
if len(err) > 0: 
    json = "Ошибка! " + err
', 
@params = N'@r_rowsPerRead INT, @json NVARCHAR(MAX) OUTPUT',
@r_rowsPerRead = @RowsPerRead,
@json = @json OUTPUT

SELECT @json
8 мар 18, 23:16    [21245467]     Ответить | Цитировать Сообщить модератору
 Re: Сборка CLR с UNSAFE  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3708
CLR
felix_ff,

ну, я это не Вам, я хотел по существу услышать от неких умников, от которых здесь пользы 0.0000.

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

"Зачем?" - это вопрос больше философский. Если это не опасно для сиквела, то почему бы и не использовать такую архитектуру. Цель - вызывать скрипты на powershell из tsql, который будет возвращать строку.



Будет возможность опишите вашу методику определения пользы в виде чисел.

Вообще-то можно сделать и так:

в том месте, где вы запускаете "процесс" - вместо этого вкидываете сообщение брокеру, а внешний обработчик очереди (приложение, сервис) при обработке запускает процесс и делает всё, что хотелось, но не стоит делать внутри серверных процедур.
9 мар 18, 11:35    [21245758]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить