2015-02-11 3 views
1

Я разрабатываю проект Visual Studio 2012 SQL Server с четырьмя хранимыми процедурами CLR. Я собираюсь использовать его на сервере SQL Server 2012.Создать асимметричный ключ в проекте Visual Studio 2012 Sql Server

До этого проекта у меня есть еще один, только с CLR хранимой процедуры, и я использую этот SQL, чтобы добавить его в моей базе данных:

-- ##################################################################### 
-- Add SQL CLR Procedures. 
-- ##################################################################### 

Use master 
go 

-- Configure CLR execution on SQL Server. 
sp_configure 'show advanced options', 1; 
GO 
RECONFIGURE; 
GO 
sp_configure 'clr enabled', 1; 
GO 
RECONFIGURE; 
GO 

-- For stored procedure dll... 
CREATE ASYMMETRIC KEY CodeServerAK FROM EXECUTABLE FILE = 'D:\MyPath\bin\Release\CodeServerDB.dll' 
CREATE LOGIN SQLCLRCodeServerSP FROM ASYMMETRIC KEY CodeServerAK 
GRANT EXTERNAL ACCESS ASSEMBLY TO SQLCLRCodeServerSP 
go 

USE MyDB 
GO 

-- Create users from assemblies' login name. 
CREATE USER SQLCLRCodeServerSPUser FOR LOGIN SQLCLRCodeServerSP 
GO 

USE MyDB 
GO 

CREATE ASSEMBLY CodeServerDB FROM 'D:\MyPath\bin\Release\CodeServerDB.dll' 
WITH PERMISSION_SET=EXTERNAL_ACCESS 
GO 

Но теперь у меня есть проблема: я не знаю, как создать асимметричный ключ CodeServerAK, потому что теперь у меня нет пути к dll.

Как создать асимметричный ключ?

Я думаю, что не нужно использовать этот SQL:

CREATE ASSEMBLY CodeServerDB FROM 'D:\MyPath\bin\Release\CodeServerDB.dll' 
    WITH PERMISSION_SET=EXTERNAL_ACCESS 
    GO 

Я должен опубликовать проект VS на SQL Server и сборки есть.

Кстати, сборка подписана.

ответ

0

В качестве неэлегантного решения у меня есть этап предварительной сборки, который копирует ключевой файл из пути относительно проекта в общий сетевой ресурс, доступный как для машины сборки, так и для целевого SQL-сервера, например. copy/Y "$ (ProjectDir) bin \ Release \ CodeServerDB.dll" "\ myserver \ share \ path".

Затем вы можете обновить команду CREATE ASYMMETRIC KEY для ссылки на сетевой ресурс.

Я еще не обнаружил, как создать и развернуть асимметричный ключ для Visual Studio.

Sidenote: Вы можете иметь Визуальную Build Studio и развернуть сборку для вас без необходимости обращаться к двоичному DLL - проверьте Генерировать DDL опции на вкладке Настройки проекта SQLCLR, заявление CREATE ASSEMBLY генерируются с закодированными двоичным

CREATE ASSEMBLY [My.SQLServer.SQLCLR] 
    AUTHORIZATION [dbo] 
    FROM 0x4D5A900003{...}0000000000000 
    WITH PERMISSION_SET = EXTERNAL_ACCESS; 

 Смежные вопросы

  • Нет связанных вопросов^_^