2017-08-15 1 views
1

Vaut-il mieux créer des rôles de connexion postgresql pour chaque utilisateur de l'application Java ou une table utilisateur avec des noms d'utilisateur et des mots de passe?Rôles de connexion vs table de mots de passe utilisateur

Dans le cas deux, comment puis-je me connecter à la base de données avec un nom d'utilisateur et un mot de passe stockés sur une table?

Répondre

0

rôles PostgreSQL sont maintenant conceptuellement la même chose que ce que vous proposez, les utilisateurs avec des mots de passe:

https://www.postgresql.org/docs/8.1/static/user-manag.html

Le concept des rôles subsume les concepts de « utilisateurs » et « groupes ». Dans les versions de PostgreSQL antérieures à la version 8.1, les utilisateurs et les groupes étaient des types distincts d'entités, mais il n'y a plus que des rôles. Tout rôle peut agir en tant qu'utilisateur, groupe ou les deux

Les rôles de base de données sont conceptuellement complètement distincts des utilisateurs du système d'exploitation. En pratique, il peut être pratique de maintenir une correspondance, mais cela n'est pas nécessaire. Les rôles de base de données sont globaux dans une installation de cluster de base de données (et non par base de données individuelle). Pour créer un rôle, utilisez la commande CREATE ROLE SQL.

Pour amorcer le système de base de données, un système fraîchement initialisé contient toujours un rôle prédéfini. Ce rôle est toujours un "superutilisateur" et, par défaut (sauf s'il est modifié lors de l'exécution d'initdb), il aura le même nom que l'utilisateur du système d'exploitation qui a initialisé le cluster de base de données. Habituellement, ce rôle sera nommé postgres. Afin de créer plus de rôles, vous devez d'abord vous connecter en tant que premier rôle.

Chaque connexion au serveur de base de données est effectuée au nom d'un rôle particulier et ce rôle détermine les privilèges d'accès initiaux pour les commandes émises sur cette connexion. Le nom de rôle à utiliser pour une connexion de base de données particulière est indiqué par le client qui initie la demande de connexion d'une manière spécifique à l'application. Par exemple, le programme psql utilise l'option de ligne de commande -U pour indiquer le rôle à connecter. De nombreuses applications prennent par défaut le nom de l'utilisateur actuel du système d'exploitation (y compris createuser et psql). Par conséquent, il est souvent pratique de maintenir une correspondance de noms entre les rôles et les utilisateurs du système d'exploitation.

+0

Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. - [À revoir] (/ review/low-quality-posts/17043226) –

+0

Exactement. Fixé. –

0

Les rôles de connexion devraient être acceptables tant que vous n'avez pas de logique bussines très compliquée. Si vous allez avec table avec les noms d'utilisateur et les mots de passe, vous avez besoin de tables supplémentaires pour stocker les subventions et programmer pour gérer les droits qui exigeront beaucoup de travail.