0

我们有一个使用 SQL Server 2005 或更高版本的应用程序,当我们创建数据库时,它当前会创建各种登录,我们有各种使用证书签名的存储过程。

目前,当生成或备份证书时,它使用 SQL Server 数据目录,这可能会导致 AV 软件问题和其他服务器权限问题。

本质上,我们需要找到一个临时目录,我们可以将证书复制到其中以进行安装,我可以获得临时目录的唯一方法是使用以下脚本通过 xp_cmdshell:-

DECLARE @temp nvarchar(255)
CREATE TABLE #Tmp
(
EnvVar nvarchar(255)
)
INSERT INTO #Tmp exec xp_cmdshell 'echo %TMP%'
SET @temp = (SELECT TOP 1 EnvVar from #Tmp)

SELECT @temp as 'Windows Directory'

drop table #Tmp

但是,如果在 SQL Server 中关闭了 xp_cmshell 组件,则这并不好。

有没有人有任何其他建议,从长远来看,我们将放弃数字证书,但在短期内我们不能这样做。

4

1 回答 1

0

输出的CLR 存储过程怎么样Environment.GetFolderPath(SpecialFolder.Temp);

这要求您部署一个程序集并且将服务器配置为允许使用 CLR。

于 2011-04-21T09:41:20.747 回答