Un bon moyen d'accorder des permissions dans PostgreSQL

Je suis nouveau sur PostgreSQL et j'ai un peu de problèmes pour find des informations sur la façon d'accorder des permissions d'user sur la database qu'ils possèdent. J'ai lu quelques sources qui indiquent que le propriétaire possède toutes les permissions, mais cela ne semble pas fonctionner pour moi. Je devais encore accorder des permissions pour exécuter une instruction select.

J'ai également lu beaucoup de choses qui disent que PostgreSQL ne supporte tout simplement pas l'octroi à plusieurs tables dans une database à la fois, alors j'espère qu'elles ne sont que désuètes.

Voici ce que j'ai fait jusqu'ici:

# Create the user createuser -SDRPE demo # Create the database createdb demo -O demo # Import schema psql -f myfile.sql demo # Grant Permissions ??? 

Quelqu'un peut-il me dire la meilleure façon d'aborder cela? À l'heure actuelle, j'écris tout cela dans une tâche Rake, afin que je puisse récupérer techniquement toutes les tables de la database et les itérer à travers elles, mais cela ressemble à une terrible solution difficile. Il me semble que je manque quelque chose. Toute reflection / commentaire / lien serait grandement apprécié.

Edit 1: En tant que note rapide, toutes ces commands sont exécutées en tant que root qui est un superuser dans la database avec l'authentification IDENT SAMEUSER spécifiée dans pg_hba.conf dans le cas où cela fait toute différence.

3 Solutions collect form web for “Un bon moyen d'accorder des permissions dans PostgreSQL”

Peux-tu essayer

 psql dbname username < filename.sql 

Donc, vous utiliserez

 psql demo demo < myfile.sql 

Je ne sais pas où votre file sql va parce que vous ne spécifiez pas le db dans votre script.

Quelques exemples pourraient être:

à peu près tout: accorder tous les privilèges sur la démo de la database à la démo;

accorder des choix simples: accorder sélectionner sur table foo à démo;

plus que sélectionner: accorder sélectionner, insert, mettre à jour, supprimer sur table foo à démo;

Plus d'informations ici: http://www.postgresql.org/docs/8.3/static/sql-grant.html

Si tout ce que vous voulez faire est d'accorder à la démo de l'user la possibilité de lire / écrire / modifier la démo de la database, vous avez déjà terminé, car le propriétaire de la database a tous les privilèges nécessaires par défaut.

Si vous avez besoin de plus de privilèges spécifiques pour plus d'un user, vous pouvez créer un nouvel user et des privilèges GRANT sur un ou plusieurs objects.

Pour l'access non local à la database, je recommand fortement d'ajuster votre pg_hba.conf

  • Configuration Postgresql md5: "Aucune input pg_hba.conf pour ..."
  • échec ssl handshake avec COPY sur PostgreSQL
  • Démarrez postgresql dans boot sur Ubuntu 10.4
  • Quelle est la différence entre les commands "" psql "" et "" postgres ""?
  • Utilisez les vues SQL au lieu des tables avec Asterisk dynamic en temps réel
  • Horrible performance de locking PostgreSQL
  • La copy d'une database dans PostgreSQL permet-elle de conserver les statistics?
  • Connectez-vous à MySQL avec une command line sans besoin d'un mot de passe racine
  • PostgreSQL n'écoute pas sur l'eth1 local après le redémarrage
  • Peut-on vérifier les kernelx disponibles au moment de l'exécution sur Postgres?
  • La limite de connection à la database devrait-elle être égale au nombre de process qui se connectent?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.