|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : mai 2004 Messages : 679 ![]() |
Salut,
Je me trouve face à un problème de owner au nieveau de mes db. J'avais en place 2 utilisateur possèdant le droit de créer de objets DB. L'utilisateur postgres et l'utilisateur maison. L'utilisateur postgres ne devrait normalement plus être utilisé, néanmoins d'autres développeurs de l'équipe continuent à l'utiliser pour créer des clés. Résultat, lorsque je dump avec l'utilisateur maisopn, tout ce qui est propriété de l'utilisateur postgres ne passe pas. Quelqu'un sait comment je peux rétrouver dans mes db tout ce qui a pour owner postgres? Merci.
__________________
Pourquoi vouloir ré-inventer la roue... ...Surtout si c'est pour la faire carrée... |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
bonjour,
as tu regardé du coté de information_schema ? il y a par exemple : table_privileges, .... ca pourrais te donner une piste |
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Inscription : mai 2004 Messages : 679 ![]() |
Merci pour la piste, je vais y regarder...
__________________
Pourquoi vouloir ré-inventer la roue... ...Surtout si c'est pour la faire carrée... |
|
|
00
|
|
|
#4 | ||
|
Membre actif
![]() Inscription : mai 2004 Messages : 679 ![]() |
Re...
En faisant Code :
__________________
Pourquoi vouloir ré-inventer la roue... ...Surtout si c'est pour la faire carrée... |
||
|
|
00
|
|
|
#5 | ||
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
en fait, le bon vieux pg_catalog est là pour nous sauver, je sais pas ou ca peut se trouver dans l'information schema.
voici la solution, apres il faut custom bien sur Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Inscription : mai 2004 Messages : 679 ![]() |
Merci pour l'ébauche hpalpha. Il me reste à modifier de manière à ne voir que les tables non-système créees par postgres... Enfin le 'que' est peut être beaucoup présumer de mes compétences...
__________________
Pourquoi vouloir ré-inventer la roue... ...Surtout si c'est pour la faire carrée... |
|
|
00
|
|
|
#7 | ||
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
Pas de pb
pg_catalog est un schema systeme, c'est dedans que l'on a toutes les informations qui concerne la structure des objets (tables, view, index, ...) il y a une table pg_class qui reference chaque objet de la base de données. pg_authid est la table avec les users, et les password (et plus) dans pg_class, tu as un champ relowner --> le owner, mais le probleme c'est que c'est un oid (en entier, donc pas tres clair) on va donc chercher sa correspondance dans pg_authid (oid est la colonne qui sert d'identifiant a un user), d'où le inner join entre les tables enfin, je restreint mon filtre, mais dans ton cas, tu cherches les owners a postgres (desole, j'ai fais l'inverse) donc, on met WHERE rolname = 'postgres' La requete complete : Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre actif
![]() Inscription : mai 2004 Messages : 679 ![]() |
J'ai lancé la query, un tout grand merci en tout cas, le seul problème c'est que j'ai une référence à toutes sorte d'info qui ne m'intéressent pas et qui viennent fortement gonfler la liste...
J'ai ceci : relname | rolname -----------------------------------+---------- views | postgres data_type_privileges | postgres element_types | postgres sql_packages | postgres sql_parts | postgres sql_sizing | postgres sql_sizing_profiles | postgres table_constraints | postgres table_privileges | postgres tables | postgres triggered_update_columns | postgres triggers | postgres usage_privileges | postgres view_column_usage | postgres view_routine_usage | postgres view_table_usage | postgres referential_constraints | postgres role_column_grants | postgres role_routine_grants | postgres role_table_grants | postgres role_usage_grants | postgres routine_privileges | postgres routines | postgres schemata | postgres sequences | postgres sql_features | postgres sql_implementation_info | postgres sql_languages | postgres attributes | postgres check_constraint_routine_usage | postgres check_constraints | postgres column_domain_usage | postgres column_privileges | postgres column_udt_usage | postgres columns | postgres constraint_column_usage | postgres constraint_table_usage | postgres domain_constraints | postgres domain_udt_usage | postgres domains | postgres enabled_roles | postgres key_column_usage | postgres parameters | postgres information_schema_catalog_name | postgres applicable_roles | postgres administrable_role_authorizations | postgres actes_actes | postgres actes_actes_pkey | postgres Alors que j'aimerais juste avoir actes_actes | postgres actes_actes_pkey | postgres Je pense que tout ce qui est au dessus est lié au système postgres et ne constitue donc pas des info intéressantes à mon niveau...
__________________
Pourquoi vouloir ré-inventer la roue... ...Surtout si c'est pour la faire carrée... |
|
|
00
|
|
|
#9 | ||||
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
oui c'est vrai que ca affiche les objets systemes
alors on custom, dans pg_namespace on a les schema donc on va esclure tous ce qui commence par pg_ et information_schema : Code :
version plus elegante, avec les expression reg : Code :
|
||||
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
autre chose,
dans pg_namespace il y a un nspowner ... pour recup le owner des schemas. |
|
|
00
|
|
|
#11 |
|
Membre actif
![]() Inscription : mai 2004 Messages : 679 ![]() |
C'est impecable... Un tout grand merci...
__________________
Pourquoi vouloir ré-inventer la roue... ...Surtout si c'est pour la faire carrée... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com