2017-08-15 3 views
1

Ist es besser, Postgresql Login-Rollen für jeden Java-Anwendung Benutzer oder eine Benutzertabelle mit Benutzernamen und Passwörter zu erstellen?Login-Rollen vs Benutzer Passwort Tabelle

Im zweiten Fall, wie kann ich mich mit einem Benutzernamen und einem Passwort in der Datenbank einloggen?

Antwort

0

PostgreSQL Rollen sind nun konzeptionell das gleiche wie das, was Sie vorschlagen, können Benutzer mit Passwörtern:

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

Das Konzept der Rollen, die Konzepte der „Benutzer“ und „Gruppen“ subsumiert. In PostgreSQL-Versionen vor 8.1 waren Benutzer und Gruppen unterschiedliche Arten von Entitäten, aber jetzt gibt es nur Rollen. Jede Rolle kann als Benutzer, Gruppe oder beides fungieren

Datenbankrollen sind konzeptionell völlig unabhängig von Betriebssystembenutzern. In der Praxis kann es sinnvoll sein, eine Korrespondenz zu pflegen, dies ist jedoch nicht erforderlich. Datenbankrollen sind global in einer Datenbank-Cluster-Installation (und nicht für jede einzelne Datenbank). Um eine Rolle zu erstellen, verwenden Sie den CREATE ROLE SQL-Befehl

Um das Datenbanksystem zu starten, enthält ein frisch initialisiertes System immer eine vordefinierte Rolle. Diese Rolle ist immer ein "Superuser" und standardmäßig (wenn sie nicht geändert wird, wenn initdb ausgeführt wird) hat sie denselben Namen wie der Betriebssystembenutzer, der den Datenbankcluster initialisiert hat. Üblicherweise wird diese Rolle postgres heißen. Um mehr Rollen zu erstellen, müssen Sie sich zuerst als erste Rolle verbinden.

Jede Verbindung zum Datenbankserver wird im Namen einer bestimmten Rolle hergestellt, und diese Rolle bestimmt die anfänglichen Zugriffsrechte für Befehle, die für diese Verbindung ausgegeben werden. Der Rollenname für eine bestimmte Datenbankverbindung wird vom Client angegeben, der die Verbindungsanforderung anwendungsspezifisch initiiert. Beispielsweise verwendet das Programm psql die Befehlszeilenoption -U, um die Rolle anzugeben, mit der eine Verbindung hergestellt werden soll. Viele Anwendungen übernehmen standardmäßig den Namen des aktuellen Betriebssystembenutzers (einschließlich createuser und psql). Daher ist es oft praktisch, eine Naming-Korrespondenz zwischen Rollen und Betriebssystembenutzern aufrechtzuerhalten.

+0

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/17043226) –

+0

Richtig du bist. Fest. –

0

Login-Rollen sollten in Ordnung sein, solange Sie keine sehr komplizierte Geschäftslogik haben. Wenn Sie mit der Tabelle mit Benutzernamen und Passwörtern gehen, benötigen Sie zusätzliche Tabellen, um Zuschüsse zu speichern und ein Programm, um Rechte zu verwalten, die viel Arbeit erfordern.