J'apprends actuellement les différences entre PostgreSQL et MySQL car j'ai un nouveau projet et j'ai également l'intention de migrer mon logiciel existant de MySQL vers PostgreSQL. J'ai en fait commencé à créer un tableau HTML avec une comparaison des commandes (pour les utilisateurs/bases de données/invite de commande, etc.) entre les deux. Après lecture d'une réponse ici, j'ai remarqué que role
semble être utilisé en groupe. Avec MySQL, j'ai deux utilisateurs, essentiellement publics (DELETE
, INSERT
, SELECT
et UPDATE
autorisations) et un utilisateur administrateur avec quelques autorisations supplémentaires.
Donc, fondamentalement, dans l'invite de commande de Windows 7 (développement local uniquement) ...
GRANT
ou REVOKE
pour les autorisations utilisateur?Un rôle est une entité qui peut fonctionner en tant qu'utilisateur et/ou en tant que groupe. Un rôle WITH LOGIN
peut être utilisé en tant qu'utilisateur, c'est-à-dire que vous pouvez vous connecter avec lui. Tout rôle peut fonctionner en tant que groupe, y compris les rôles auxquels vous pouvez également vous connecter. Donc, "utilisateur" et "groupe" sont essentiellement des termes qui indiquent l'usage prévu d'un rôle, il n'y a pas vraiment de distinction entre eux. Même dans la version PostgreSQL de SQL, les deux sont plus ou moins utilisés comme synonymes. Par exemple, la documentation sur CREATE USER
dit:
CREATE USER est désormais un alias de CREATE ROLE.
Accorder tout ... voir le manuel pour GRANT
. Vous souhaitez probablement accorder des droits à ALL TABLES IN SCHEMA public
plutôt que toutes les tables de la base de données.
Accorder certains droits ... même chose, mais au lieu de GRANT ALL
utilisation GRANT SELECT, INSERT
par exemple. Encore une fois, consultez le manuel.
Un rôle est un utilisateur et/ou un groupe. Vous ne pouvez accorder que des rôles, car les rôles sont tout ce qu'il y a.