J'essaie de permettre à un utilisateur de visualiser les données de suivi du serveur SQL à partir d'un fichier .trc sans lui donner l'autorisation d'accéder aux données de suivi. ALTER TRACE
autorisations (SQL Server 2008 R2). J'ai donc mis en place une procédure stockée, en utilisant mon compte sysadmin :
CREATE PROCEDURE test_trace
as
SELECT * FROM FN_TRACE_GETTABLE(N'C:\temp\trace1.trc', 1)
Si j'exécute cette procédure stockée en utilisant mon compte sysadmin, elle s'exécute comme prévu. Si j'essaie de l'exécuter sous le compte domain1 \user1 mais il ne s'exécute pas, ce qui donne lieu à l'erreur suivante "You do not have permission to run 'FN_TRACE_GETTABLE'"
. Ceci est à nouveau attendu.
Donc maintenant je veux laisser domain1\user1
exécuter la procédure stockée, donc je change la procédure stockée pour qu'elle s'exécute sous un compte sysadmin :
CREATE PROCEDURE test_trace
WITH EXECUTE AS 'domain1\sysadmin1'
as
SELECT * FROM FN_TRACE_GETTABLE(N'C:\temp\trace1.trc', 1)
Maintenant, lorsque j'exécute la procédure stockée, j'obtiens "You do not have permission to run 'FN_TRACE_GETTABLE'"
quel que soit le compte sous lequel je l'exécute ! Je m'attendais à pouvoir l'exécuter à la fois sous le compte domain1\user1
y domain1\sysadmin1
comptes.
Quelqu'un peut-il m'aider à trouver ce que j'ai manqué ? Mon objectif est de permettre domain1\user1
pour lire le trace1.trc
sans leur donner ALTER TRACE
permissions.