Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration PostgreSQL Discussion :

Modifier le propriétaire d'un groupe de schémas


Sujet :

Administration PostgreSQL

  1. #1
    Candidat au Club
    Modifier le propriétaire d'un groupe de schémas
    Bonjour,
    J'ai chargé une certain nombre de tables (112 par schéma) dans 139 schémas avec un nom de propriétaire. J'aimerais modifier le propriétaire "mon_nom" par "postgres" pour rendre la base accessible à tous.
    Y a t-il possibilité de modifier ce nom en une seule ligne de code ?

    Merci d'avance.

    Eric

  2. #2
    Rédacteur

    Non, il faut faire schéma SQL par schéma SQL. Néanmoins vous pouvez générer du sql dynamique à partir des vues systèmes afin de générer l'ensemble des requêtes…

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT SCHEMA_NAME, SCHEMA_OWNER FROM INFORMATION_SCHEMA.SCHEMATA


    Néanmoins je serais curieux de savoir deux choses :
    • les 112 tables sont elles identiques dans les 139 schémas ?
    • connaissez vous la notion de "row level security" ?


    Parce que je renifle à 100m une erreur de modélisation qui aura potentiellement des conséquences catastrophiques !

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Rédacteur/Modérateur

    Citation Envoyé par Eric_pcpt_045 Voir le message
    J'aimerais modifier le propriétaire "mon_nom" par "postgres" pour rendre la base accessible à tous.
    L'accessibilité aux tables d'un schéma se fait indépendamment du propriétaire (et heureusement d'ailleurs)...
    Il vous faut regarder du côté de la commande GRANT.
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Candidat au Club
    Bonjour,
    Merci pour cette réponse.
    En fait, il s'agit simplement d'héberger la base de données du cadastre PCI vecteur du département, commune par commune. Chaque schéma correspond à une des 326 communes.
    La base de données est livrée au format EDIGEO, le chargement vers Postgres passe par un plugin installé sur Qgis.
    Lorsque j'ai connecté la base cadastre à Qgis, je me suis connecté avec mon identifiant perso, qui est devenu par défaut le propriétaire des schémas créés(via le plugin).
    Lorsque j'ai voulu partagé la base, les géomaticiens avaient accès à la base mais pas aux tables. C'est pourquoi, j'ai voulu modifier le propriétaire des schémas déjà créés.

    D'un point de vue sécurité, il n'y a à priori pas de problème, du point de vue modélisation, je ne tiens pas les rênes.

    Merci de votre aide, bonne journée et bonnes fêtes de fin d'année.

    Eric

  5. #5
    Rédacteur/Modérateur

    Dans ce cas, c'est un problème de droit au niveau de chaque table... et pas un problème de propriétaire (en tout cas pas dans le cas présent, mais ça pourrait venir par la suite lors de modifications éventuelles de structure des tables).
    Et donc, la commande suivante devrait vous aider :
    GRANT SELECT ON ALL TABLES IN SCHEMA nom_schema TO nom_role;
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  6. #6
    Rédacteur

    Citation Envoyé par Eric_pcpt_045 Voir le message
    Bonjour,
    Merci pour cette réponse.
    En fait, il s'agit simplement d'héberger la base de données du cadastre PCI vecteur du département, commune par commune. Chaque schéma correspond à une des 326 communes.
    La base de données est livrée au format EDIGEO, le chargement vers Postgres passe par un plugin installé sur Qgis.
    Lorsque j'ai connecté la base cadastre à Qgis, je me suis connecté avec mon identifiant perso, qui est devenu par défaut le propriétaire des schémas créés(via le plugin).
    Lorsque j'ai voulu partagé la base, les géomaticiens avaient accès à la base mais pas aux tables. C'est pourquoi, j'ai voulu modifier le propriétaire des schémas déjà créés.

    D'un point de vue sécurité, il n'y a à priori pas de problème, du point de vue modélisation, je ne tiens pas les rênes.

    Merci de votre aide, bonne journée et bonnes fêtes de fin d'année.

    Eric

    C'est donc bien une stupidité que de créer un schéma SQL par commune. Aucun intérêt dans ce cas… Et cela va conduire à de multiples problèmes :
    • écriture de requêtes complexes
    • performances catastrophiques
    • maintenance extrêmement couteuses

    etc...

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  7. #7
    Candidat au Club
    Citation Envoyé par ced Voir le message
    Dans ce cas, c'est un problème de droit au niveau de chaque table... et pas un problème de propriétaire (en tout cas pas dans le cas présent, mais ça pourrait venir par la suite lors de modifications éventuelles de structure des tables).
    Et donc, la commande suivante devrait vous aider :
    GRANT SELECT ON ALL TABLES IN SCHEMA nom_schema TO nom_role;
    C'est tout à fait cela, manque d'expérience de ma part.
    Merci beaucoup.

    Eric