我们有一个使用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组件,这是不行的。
有没有人有任何其他建议,从长远来看,我们将放弃数字证书,但在短期内我们不能这样做。
答案 0 :(得分:0)
输出Environment.GetFolderPath(SpecialFolder.Temp);
这需要您部署程序集,并且服务器配置为允许使用CLR。