Créez un nouvel utilisateur en lecture seule dans postgres

9

Je voudrais créer un nouvel utilisateur dans une postgresqlbase de données existante sur une machine Ubuntu. Je veux accorder à cet utilisateur un accès en lecture seule à toutes les tables.

Comment fait-on ça? Dois-je également créer un nouvel utilisateur sur Ubuntu?

Merci,

Udi

Adam Matan
la source

Réponses:

20

Référence tirée de cet article!

Script pour créer un utilisateur en lecture seule:

CREATE ROLE Read_Only_User WITH LOGIN PASSWORD 'Test1234' 
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity';

Attribuez l'autorisation à cet utilisateur en lecture seule:

GRANT CONNECT ON DATABASE YourDatabaseName TO Read_Only_User;
GRANT USAGE ON SCHEMA public TO Read_Only_User;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO Read_Only_User;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO Read_Only_User;
Anvesh
la source
Impressionnant! Une nouvelle réponse pertinente après plus de 6 ans.
Adam Matan
Ça vaut le coup. C'était le lien le plus important pour moi lorsque je cherchais "créer un utilisateur en lecture seule dans Postgres". Le premier article ayant un exemple pertinent est une victoire dans mon livre.
Audrius
3

Pas besoin de créer un nouvel utilisateur dans le système d'exploitation. Il suffit d'émettre:

CRÉER UN UTILISATEUR nouveau nom d'utilisateur

dans psql (ou pgadmin, ou quel que soit l'outil que vous préférez) et vous aurez un nouvel utilisateur. L'accès de cet utilisateur dépend de la configuration de vos tables. Mais par défaut, il n'aura aucune autorisation sur aucune table, vous devrez donc l'octroyer. Si vous avez déjà accordé des autorisations au groupe public, l'utilisateur aura ces autorisations dès le début.

Magnus Hagander
la source