2011-04-21 3 views
0

Nous avons une application qui utilise SQL Server 2005 ou supérieur, lorsque nous créons la base de données, il crée actuellement diverses connexions, nous avons différentes procédures stockées qui sont signées avec un certificat. Actuellement, lorsque le certificat est généré ou sauvegardé, il utilise le répertoire de données SQL Server, ce qui peut causer des problèmes avec le logiciel AV et d'autres problèmes d'autorisation du serveur.SQL Server créant un certificat numérique

Essentiellement, nous avons besoin de trouver un répertoire temporaire nous pouvons copier le certificat à des fins d'installation, la seule façon que je peux obtenir le répertoire temporaire est par xp_cmdshell en utilisant le script suivant: -

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 

Cependant cela est pas bon si le composant xp_cmshell est désactivé dans SQL Server.

Est-ce que quelqu'un a d'autres suggestions, à plus long terme, nous allons abandonner le certificat numérique, mais à court terme, nous ne pouvons pas le faire.

Répondre

0

Que diriez-vous d'un CLR Stored procedure qui sort Environment.GetFolderPath(SpecialFolder.Temp);

Cela nécessite de déployer un ensemble et que le serveur est configuré pour permettre l'utilisation du CLR.

Questions connexes