Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема при создании Assembly / 6 сообщений из 6, страница 1 из 1
22.12.2017, 11:06
    #39574303
Ceib
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при создании Assembly
Доброго дня!

Возникла задача, которую не получается решить средствами T-SQL - набросал (впервые в жизни) CLR функцию и пытаюсь ее запихнуть в базу. В качестве базовой инструкции использую вот это это - отличие от моего случая одно единственное - PERMISSION_SET у меня SAFE.

Выполнил последовательность действий:
1.
Код: sql
1.
2.
3.
use master
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Некоторый пароль'  
    


2. Скомпилил DLL-ку, подписал.
3.
Код: sql
1.
2.
3.
4.
5.
use master
GO
CREATE ASYMMETRIC KEY CLR_SP_Key
FROM EXECUTABLE FILE = 'D:\t\MyCLR.dll'
GO 



4.
Код: sql
1.
2.
3.
4.
5.
use master
CREATE LOGIN CLR_SP_Login FROM ASYMMETRIC KEY CLR_SP_Key

use myBase
CREATE USER CLR_SP_user FOR LOGIN CLR_SP_Login



5.
Код: sql
1.
2.
3.
4.
use myBase
CREATE ASSEMBLY SQLCLR_REGEX  FROM 'D:\t\MyCLR.dll'
with permission_set=SAFE;  
go




На последнем шаге возникает ошибка, которую совсем не могу понять:

Код: plaintext
1.
Msg 10343, Level 14, State 1, Line 20
CREATE or ALTER ASSEMBLY for assembly 'CLR_Regex_Functions' with the SAFE or EXTERNAL_ACCESS option failed because the 'clr strict security' option of sp_configure is set to 1. Microsoft recommends that you sign the assembly with a certificate or asymmetric key that has a corresponding login with UNSAFE ASSEMBLY permission. Alternatively, you can trust the assembly using sp_add_trusted_assembly.

Вроде все сделал по инструкции - подписал, пользователя создал, а не заводится. Подскажите, что упустил?
...
Рейтинг: 0 / 0
22.12.2017, 11:46
    #39574328
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при создании Assembly
Ceib,

автор Enabled - Causes the Database Engine to ignore the PERMISSION_SET information on the assemblies, and always interpret them as UNSAFE. Enabled is the default value for SQL Server 2017.
или крестик снять (clr strict security = 0) или SAFE убрать
...
Рейтинг: 0 / 0
22.12.2017, 11:56
    #39574333
Ceib
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при создании Assembly
TaPaK,

Сразу отказываться от clr strict security не хотелось бы без крайней необходимости - предполагаю, что дефолтные настройки должны быть предпочтительны в большинстве случаев, а полного понимания чего это коснется и где откликнется у меня нет.
Насчет SAFE - если имеется ввиду изменение PERMISSION_SET на UNSAFE/EXTERNAL_ACCESS, то попробовал - ничего не изменилось. Если имеется что то еще - не могли бы Вы пояснить?
...
Рейтинг: 0 / 0
22.12.2017, 11:58
    #39574336
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при создании Assembly
...
Рейтинг: 0 / 0
22.12.2017, 12:07
    #39574342
ptr128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при создании Assembly
TaPaKCeib,

автор Enabled - Causes the Database Engine to ignore the PERMISSION_SET information on the assemblies, and always interpret them as UNSAFE. Enabled is the default value for SQL Server 2017.
или крестик снять (clr strict security = 0) или SAFE убрать

Сильно зависит от версии SQL сервера. На 2017 - так как Вы сказали. На 2016-ом clr strict security могла быть включена -T 6545 в командной строке сервера. Иного способа включить ее на 2016-ом я не знаю.
...
Рейтинг: 0 / 0
22.12.2017, 12:20
    #39574354
Ceib
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при создании Assembly
ptr128 ,
SQL Server 2017, так что да, решение помогло.


TaPaK ,
Благодарю, за ссылку. После прочтения понял, что под "убрать SAFE" имело ввиду "отказаться от SAFE в своем решении" - отказался, добавил права UNSAFE ASSEMBLY пользователю:

Код: sql
1.
2.
use master
grant UNSAFE ASSEMBLY to CLR_SP_Login



И заработало. Еще раз спасибо.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема при создании Assembly / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]