Existe-t-il une ligne unique qui accorde le SELECTIONNER les permissions à un nouvel utilisateur postgresql ?
Quelque chose qui mettrait en œuvre le pseudo-code suivant :
GRANT SELECT ON TABLE * TO my_new_user;
Existe-t-il une ligne unique qui accorde le SELECTIONNER les permissions à un nouvel utilisateur postgresql ?
Quelque chose qui mettrait en œuvre le pseudo-code suivant :
GRANT SELECT ON TABLE * TO my_new_user;
Je travaille avec postgres 8.4 et pour donner tous les privilèges à un utilisateur, faites ce qui suit :
#!/bin/bash
for table in `echo "SELECT schemaname||'.'||relname FROM pg_stat_all_tables WHERE schemaname NOT IN('pg_catalog','pg_toast','information_schema')" | psql -t db `;
do
echo "grant select on table $table to my_new_user;"
echo "grant select on table $table to my_new_user;" | psql db
done
La solution (en une ligne) script d'Adam Matan est excellente lorsqu'il y a de nombreux schémas, mais elle ne fonctionne pas lorsque les noms de schémas ou de tables contiennent des majuscules ou des caractères spéciaux.
Version modifiée :
#!/bin/bash
for table in `echo "SELECT '\"' || schemaname || '\".\"' || relname || '\"' FROM pg_stat_user_tables;" | psql -A -t my_database_name`;
do
echo "GRANT SELECT ON TABLE $table to my_new_user;"
echo "GRANT SELECT ON TABLE $table to my_new_user;" | psql my_database_name
done
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.