2010-05-22 3 views
0

Je souhaite activer la consignation de toutes les instructions SQL qui modifient la base de données. Je pourrais obtenir cela sur ma propre machine en mettant l'indicateur log_statement dans le fichier de configuration, mais il doit être activé sur la machine de l'utilisateur. Comment l'activez-vous à partir du code du programme? (J'utilise Python avec psycopg2 si elle importe.)Postgres active le log_statement par programme

+0

Je ne suis pas sûr de comprendre toutes vos questions. Je suppose que votre machine exécute le serveur que la machine de "l'utilisateur" exécute un client quelconque. Je suis complètement déconcerté par votre affirmation "il doit être activé sur la machine de l'utilisateur". Sauf si vous voulez un fichier journal par utilisateur qui réside sur la machine de l'utilisateur, l'affirmation n'a aucun sens pour moi. Pourriez-vous élaborer un peu plus sur ce que vous voulez accomplir exactement? – yarmiganosca

+0

Juste, pour clarifier, ma machine n'est pas n'importe quel type de serveur, c'est juste ma boîte de développement. Le serveur ainsi que les machines clientes se trouvent sur le site de l'utilisateur, qui peut être éloigné de quelques milliers de kilomètres et ne pas être configuré pour l'accès à distance aux fichiers. La modification manuelle des fichiers de configuration n'est donc pas une solution. – rwallace

Répondre

1

Le « il doit être activé sur la machine de l'utilisateur » phrase est source de confusion, en effet ... Je suppose que vous voulez dire « de l'utilisateur (client) côté ".

Dans PostgreSQL, certains server run-time parameters peuvent être modifiés à partir d'une connexion, mais uniquement à partir d'un super-utilisateur - et uniquement pour les paramètres qui ne nécessitent pas de redémarrage du serveur. Je ne suis pas sûr si cela inclut les nombreuses options de journal. Vous pouvez essayer avec quelque chose comme:

SELECT set_config('log_XXX', 'off', false); 

log_XXX est à remplacer par le logging setting et 'false 'par la valeur que vous souhaitez respective définir.

Si cela ne fonctionne pas, je suppose que vous n'avez pas de chance.

Questions connexes