Existe-t-il une ligne qui accorde les autorisations SELECT à un nouvel utilisateur postgresql?
Quelque chose qui implémenterait le pseudo-code suivant:
GRANT SELECT ON TABLE * TO my_new_user;
permissions
sql
postgresql
user-management
Adam Matan
la source
la source
default privileges
sur un schéma, où vous créez la table: postgresql.org/docs/current/static/…public
pour la base de données actuelle à laquelle vous êtes connecté.Ma solution (non-one-liner):
Couru de l'utilisateur privilégié, cela a fonctionné comme un charme.
la source
Cela peut être fait avec un processus en deux étapes.
Exécutez cette requête:
Remplaçants:
$foo
= nom d'utilisateur pour lequel vous souhaitez accorder des autorisations$bar
,$baz
= schémas pour lesquels vous souhaitez accorder des autorisations (peut être simplement "public")Cela va vous donner une liste de requêtes qui généreront les autorisations requises. Copiez le résultat, collez-le dans une autre requête et exécutez-le.
la source
C'est ce que j'ai utilisé:
Je pense qu'il est plus naturel de faire du formatage et des clauses where en SQL.
la source
J'ai fini par faire cela , et cela a fonctionné:
la source
Je travaille avec postgres 8.4 et pour donner tous les privilèges à un utilisateur, procédez comme suit:
la source
Un moyen de résoudre ce problème consiste à écrire une procédure stockée. Malheureusement, il n'y a pas de commande "Tout attribuer à toutes les tables". vous avez vraiment besoin d'une procédure ou d'un script shell externe pour que cela fonctionne.
la source
Le script (one-liner solution) de Adam Matan est idéal lorsqu'il existe de nombreux schémas, mais il ne fonctionne pas lorsque les noms de schéma ou les noms de table contiennent des lettres majuscules ou des caractères spéciaux.
Version modifiée:
la source