====== PostgreSQL : Gestion des utilisateurs et droits ====== \\ ==== Créer un utilisateur ==== CREATE ROLE test_user LOGIN PASSWORD 'test123'; ==== Supprimer un utilisateur ==== DROP ROLE test_user; ==== Changer le mot de passe d'un utilisateur ==== ALTER USER utilisateur WITH PASSWORD 'new_password'; ==== Attribuer des droits sur une base à un utilisateur ==== GRANT droit1, droit2,... ON DATABASE base_de_donnees TO utilisateur; Les droits possibles sont :\\ SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, CREATE, CONNECT, TEMPORARY, EXECUTE, USAGE \\ ---- ==== Exemples de commandes GRANT ==== === Dans le schema ref_citoyen pour la table telechargements_appstore === - Droits CRUD pour l'utilisateur ref_citoyen GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE ref_citoyen.telechargements_appstore TO ref_citoyen; - Droit SELECT, REFERENCES, TRIGGER pour l'utilisateur tmabull GRANT SELECT, REFERENCES, TRIGGER ON TABLE ref_citoyen.telechargements_appstore TO tmabull; GRANT CONNECT ON DATABASE sde TO test_user; REVOKE CONNECT ON DATABASE sde FROM test_user; GRANT USAGE ON SCHEMA archives TO test_user; REVOKE USAGE ON SCHEMA archives FROM test_user; GRANT SELECT ON ALL TABLES IN SCHEMA cr_general TO test_user; REVOKE SELECT ON ALL TABLES IN SCHEMA cr_general FROM test_user; Pour postgres < 9, il faut donner les doits tables par tables : SELECT 'GRANT SELECT ON ' || schemaname || '.' || tablename || ' TO toto;' from pg_tables where schemaname = 'archives';