2011-04-21 21 views
0

我們有一個使用SQL Server 2005或更高版本的應用程序,當我們創建數據庫時,它會創建各種登錄,我們擁有使用證書籤名的各種存儲過程。創建數字證書的SQL服務器

當前生成或備份證書時,它使用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

怎麼樣CLR Stored procedure輸出Environment.GetFolderPath(SpecialFolder.Temp);

這需要在部署組件和服務器被配置爲允許使用的CLR。