Open DonovanMaillard opened 5 years ago
Tu peux aussi configurer le schéma par défaut de l'utilisateur (sinon c'est public
), très pratique :
ALTER ROLE extconn SET search_path TO external_connexion, public ;
Nous testons actuellement une solution qui semble relativement satisfaisante bien que moins fluide. Nous avons créé un utilisateur commun avec les droits en lecture sur toute la base. Les identifiants de cet utilisateurs sont transmis aux personnes qui le réclame par gestionnaire de la base.
Je commence à travailler sur une fonction rassemblant connexion, extraction de requête et fermeture de la base en me basant sur ce principe.
Un exemple de fonction que j'avais ébauché pour que R puisse extraire des données et en créer un objet pour R.
gn.getData <- function(data){ if (data=="synthese") {dbGetQuery(con,"SELECT FROM gn_synthese.v_synthese_for_export")} else if (data=="unevue") {dbGetQuery(con,"SELECT FROM unevue")} else {print("Argument non reconnu : vous pouvez utiliser cette commande pour charger 'synthese' ou 'unevue'.")} }
(on l'utilise alors en faisant gn.getData(synthese)->MonObjetSynthèse
Plusieurs points à définir sur :
les droits de l'utilisateur postgresql utilisé par R (lecture seule? tables autorisées? Protéger la t_role notamment. Protéger les données "sensibles", "partenaires" etc).
la configuration des accès à postgresql par l'extérieur. Une doc à prévoir donc :)
Pour mes premiers tests, mon utilisateur avait :
Le script :