Ошибка publi sh пользовательский тип в C# до SQL Server - PullRequest
0 голосов
/ 19 января 2020

Я использую Microsoft SQL Server 2017 Express edition и Visual Studio 2017.

Я следовал этому руководству https://www.youtube.com/watch?v=nczucm60YF0&t=2s, но получаю эту ошибку:

Выполнение сценария publi sh для базы данных «имя базы данных»

Полное сообщение:

Создание [SQLCLRUDTypeDemo] ... (94, 1):
SQL72014:. Net Поставщик данных SqlClient:

Сообщение 10343, уровень 14, состояние 1, строка 1
CREATE или ALTER ASSEMBLY для сборки 'SQLCLRUDTypeDemo' с SAFE или EXTERNAL_ACCESS сбой опции, потому что для параметра clr строгая защита sp_configure установлено значение 1. Microsoft рекомендует подписывать сборку сертификатом или ключом асимметрии c, который имеет соответствующий логин с разрешением UNSAFE ASSEMBLY. Кроме того, вы можете доверять сборке, используя sp_add_trusted_assembly.

(94,0): SQL72045: Ошибка выполнения скрипта.
Выполненный скрипт:
CREATE ASSEMBLY [SQLCLRUDTypeDemo]
AUTHORIZATION [dbo]
ОТ
Произошла ошибка во время выполнения пакета.

В чем заключается решение? Я не нашел эту проблему нигде. Я нашел с ошибкой в ​​SQL Server, но не в C#.

1 Ответ

1 голос
/ 20 января 2020

Я нигде не нашел эту проблему. Я нашел с ошибкой в ​​SQL Сервер, но не в C#.

Там ошибка не в. NET или C#. Это ошибка прав доступа, поступающая с SQL сервера. При поиске информации об ошибках на SQL Сервере, вы должны, как минимум, указать число «Msg» и «Уровень». Например: "Msg 10343, Level 14" должно быть частью того, что вы ищете, включая двойные кавычки. Также полезно включить "SQL Server" в качестве части поискового запроса.

Для получения информации о том, как правильно подписывать и публиковать sh SQLCLR сборок без отключения безопасности (и даже в контексте Visual Studio), см. мой ответ на другой вопрос SO, особенно на вторую часть (ниже горизонтальной линии):

CLR Strict Security на SQL Server 2017

...