【发布时间】:2015-04-11 18:27:35
【问题描述】:
我正在开发一个带有四个 CLR 存储过程的 Visual Studio 2012 SQL Server 项目。我将在 SQL Server 2012 服务器上使用它。
在那个项目之前我有另一个项目,只有 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
我已经在 SQL Server 上发布了 VS 项目,并且程序集就在那里。
顺便说一句,程序集是签名的。
【问题讨论】:
标签: c# sql-server visual-studio-2012 sqlclr