exécuter la procédure stockée comme une autre opération de l'user

J'ai rencontré le problème suivant: il y a un user qui doit exécuter une procédure de sauvegarde stockée (spTest). Dans le corps de spTest, sp_trace_generateevent est appelé. sp_trace_generateevent nécessite des permissions de modification de trace et je ne veux pas que l'user l'ait. Je voudrais donc que l'user puisse exécuter spTest. Comment puis je faire ça?
Merci de votre aide.

    Essaye ça:

    EXECUTE AS user = 'special_user' EXECUTE YourProcerdure REVERT 

    voir ces:
    Comprendre le changement de context <<<has examples of things like you are trying to do
    Comprendre le context d'exécution
    Clause EXECUTE AS (Transact-SQL)
    EXECUTE AS (Transact-SQL)

    Comme d'autres l'ont suggéré, vous pouvez réaliser ce que vous souhaitez en utilisant la clause Execute As. Pour get des exemples de choix d'implémentation, consultez la documentation de la documentation en ligne de la clause Execute As .

    Pour en savoir plus et pour développer une meilleure compréhension de ce sujet, ce que vous cherchez à réaliser relève du concept de security du changement de context .

    c'est ce que j'ai fait (et réussi):

     let Source = Sql.Database("server", "database", [Query= "EXECUTE AS USER='user' EXECUTE [schema].[spname] 'parm1', 'parm2'"]) 

    dans Source

    Lorsque vous allez exécuter cette procédure stockée spécifique, vous devrez créer une connection différente en utilisant les informations d'identification user nécessaires.