In jedem realen System (dh nicht in einem persönlichen Projekt) variieren diese Benutzertypen je nach Umgebung, sodass es nicht ganz so einfach ist.
In allen Umgebungen sollte die Anwendung das haben, was sie benötigt, und nicht mehr (im Allgemeinen ist dies "Auswählen / Einfügen / Aktualisieren für alle Tabellen" und "Ausführen für alle Prozeduren". Für größere Systeme, in denen Sie möglicherweise separate Anwendungsbenutzer für verschiedene Aufgaben haben (z Wenn beispielsweise eine Anwendung für die Eingabe von Zensordaten und eine andere für die Erstellung von Berichten verantwortlich ist, sollten Sie ihre Berechtigungen trennen, damit sie die geringsten erforderlichen Rechte haben (der berichtende Benutzer benötigt wahrscheinlich keine Schreibrechte und Schreibrechte). Stellen Sie sicher, dass Sie dies in Ihrem Test replizieren Umgebungen, wenn Sie sie haben: Ich habe gesehen, dass Code beim Heraufstufen zu Live, das im Test funktioniert hat, umgefallen ist, weil alles in der Testumgebung auf die sa
Datenbank zugegriffen hat als (MSSQL entspricht root
).Im Idealfall sollte ein Anwendungsbenutzer im Allgemeinen keine Berechtigungen haben, mit denen er Ihr Schema ändern kann (CREATE
,, DROP
...) - es gibt Ausnahmen, aber es gibt nur wenige.
root
ist gut root
. In der Produktion ist dies nur Ihr DBA und sollte nur selten verwendet werden - nur für die Systemwartung (Upgrades des DB-Designs usw.) und die Überwachung. Bei einem großen System, insbesondere in regulierten Umgebungen, in denen Sie aus Gründen der Rechenschaftspflicht die Kontrolle über Einzelpersonen behalten müssen, dürfen Sie möglicherweise keinen einzelnen root
Benutzer zulassen und versuchen, die Berechtigungen in kleinere Rollen aufzuteilen (ich bin mir nicht sicher, wie weit Sie gehen können mit diesem in MySQL, aber Sie können in MSSQL, Oracle und so weiter ziemlich feinkörnig sein).
Für Entwicklerbenutzer: Sie sollten überhaupt keinen Zugriff auf Ihre Live-Umgebungen haben. Dies ist einer der Gründe, warum Anwendungsbenutzer kein Schema haben sollten, das sich auf Rechte auswirkt: Jemand mit Zugriff auf ein Entwicklerkonto könnte möglicherweise seine Sperrung auf diese Weise umgehen. Auch in Testumgebungen haben sie normalerweise keinen Zugriff: Sie senden Patches an die Qualitätssicherung, und der DBA (wahrscheinlich unter Verwendung eines root
Benutzers) für die Qualitätssicherung wendet die Aktualisierungen auf die Testumgebung an (tatsächlich wird dies in großen Organisationen häufig automatisiert, so der QA-DBA ist eigentlich eine Reihe von Skripten, die die Neuerstellung der Testumgebung für jeden Zyklus steuern. In Entwicklungsumgebungen, insbesondere wenn die Entwickler ihre eigenen lokalen Kopien des laufenden Dienstes haben, sollten diese Benutzer natürlich vollen Zugriff auf alles haben, um experimentieren zu können.
Das Obige sind jedoch alle allgemeinen Hinweise: Um spezifische Empfehlungen abzugeben, müssten wir viel mehr über Ihre Anwendung (en) und die Umgebungen wissen, in denen sie betrieben werden. Die Zielumgebung ist manchmal wichtiger als Sie vielleicht denken: Abhängig von Ihrer Geschäftsumgebung Die Rechte Ihrer Benutzer können sogar recht direkt durch gesetzliche Bestimmungen diktiert werden, selbst in der Entwicklung, wenn Ihre Kunden Ihnen jemals zu Diagnosezwecken Zugriff auf echte Daten gewähren.