[gelöst]Rechte eines Users in den Datenbanken

Und alles was mit phpMyAdmin seine Verwandtschaft findet hat hier seinen Platz.

[gelöst]Rechte eines Users in den Datenbanken

Postby Frank_brb » 24. December 2011 12:47

Guten Tag,

mysql und phpmyadmin verrichten derart gut den Dienst, dass ich mich damit noch nicht viel beschäftigt habe. Jetzt wollte ich aber mal prüfen, welche Rechte denn ein neu angelegter User hat. Ich habe dabei eine Tabelle gelöscht und möchte diese wieder herrstellen. Der locale User hat keine administrativen Rechte.

Angelegt habe ich einen User mit folgenden Rechten:
Daten,
SELECT, INSERT, UPDATE, DELETE, FILE
Struktur,
CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE VIEW
Administration,
keine

Wenn sich der User zu seiner Datenbank verbindet, dann sieht dieser:
information_schema (28),
mysql (23),
phpmyadmin (8),
localedb (13),

Erstellt vom User ist nur die Datenbank "localedb", die darin befindlichen Tabellen sind scriptgeneriert.

Frage: Woher kommen die Datenbanken information_schema, mysql, phpmyadmin? Sind diese Datenbanken eigendlich dem Sytemuser root zugehörig, oder erstellt mysql diese Datenbanken in einer Art Automatismus damit überhaupt erst der locale Benutzer seine Datenbank nutzen kann? Warum überhaupt sieht der locale Benutzer diese Datenbanken?

in der Datenbank phpmyadmin habe ich als localer Benutzer die Tabelle `pma_bookmark` gelöscht. Das war dumm, aber ich bin davon ausgegangen, dass der locale Benutzer keine Rechte hat, dies zu tun. Blöd, ich weiß, aber nunmal passiert. Kann ich die Tabelle wieder anlegen und wieviele Felder muss diese Datenbank haben?

Vielen Dank fürs Lesen

Eine frohe Weihnacht noch.

Gruss,
Frank
Frank_brb
 
Posts: 2
Joined: 24. December 2011 12:14
Operating System: Debian

Re: Rechte eines Users in den Datenbanken

Postby Altrea » 24. December 2011 22:01

Hallo Frank,

Frank_brb wrote:Jetzt wollte ich aber mal prüfen, welche Rechte denn ein neu angelegter User hat.

Das hängt ganz davon ab, welche Rechte du ihm zuweist.
Selbst wenn dem User selbst keine Rechte zugewiesen werden, hat dieser immernoch Zugriff auf die information_schema Tabelle und alle Zugriffe, die für den Anonymen Benutzer "Jeder" (oder im englischen "Any") definiert wurden. Letzteres trifft zum Beispiel auf die Standardtabelle "test" zu.

Frank_brb wrote:Angelegt habe ich einen User mit folgenden Rechten:
Daten,
SELECT, INSERT, UPDATE, DELETE, FILE
Struktur,
CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE VIEW
Administration,
keine

Du solltest vielleicht dazu sagen, ob es sich um globale Berechtigungen, tabellenspezifische Berechtigungen, spalten- oder datensatzspezifische Berechtigungen oder sonstige Spezialberechtigungen handelt.
In deinem Fall gehe ich mal von globalen Berechtigungen aus, denn das passt zu deiner Schilderung. Globale Berechtigungen erstrecken sich auf alle Tabellen, sowohl bereits existierende als auch zukünftige.

Frank_brb wrote:Erstellt vom User ist nur die Datenbank "localedb", die darin befindlichen Tabellen sind scriptgeneriert.

Es macht keinen Unterschied, welcher User die Datenbank erstellt hat. MySQL kennt keine Besitzer. Es zählt einzig das sehr feingliedrige Rechtemanagement von MySQL.

Frank_brb wrote:Frage: Woher kommen die Datenbanken information_schema, mysql, phpmyadmin?

mysql und information_schema sind Tabellen von MySQL. Nutzt man dazu noch das Monitoring von MySQL kommt eine weitere Tabelle hinzu: performance_schema.
phpmyadmin ist die Datenbank in der die Konfiguration und Hilfstabellen von phpmyadmin drin gespeichert werden.
Da dein User sehr wahrscheinlich globale Berechtigungen hat, kann er selbstverständlich auch auf diese Datenbanken Einfluss nehmen.

Frank_brb wrote:Sind diese Datenbanken eigendlich dem Sytemuser root zugehörig

Es gibt keine "Besitzer"

Frank_brb wrote:oder erstellt mysql diese Datenbanken in einer Art Automatismus damit überhaupt erst der locale Benutzer seine Datenbank nutzen kann?

vereinfacht ausgedrückt, ja.

Frank_brb wrote:Warum überhaupt sieht der locale Benutzer diese Datenbanken?

Entweder hat dein User globale Berechtigungen, oder die Datenbank hat bestimmte Berechtigungen für den User "Jeder".

Frank_brb wrote:Kann ich die Tabelle wieder anlegen und wieviele Felder muss diese Datenbank haben?

Du kannst die Tabelle wieder anlegen. In deinem phpmyadmin Ordner müsstest du einen Unterordner "scripts" haben. In diesem liegt eine "create_tables.sql" Datei.
Diese Datei öffnest du mit einem Editor, suchst dir den Block für die jeweilige Tabelle, und führst ihn als SQL Statement aus.

Dir auch noch frohe Weihnachten.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Rechte eines Users in den Datenbanken

Postby Frank_brb » 25. December 2011 12:58

Hallo Altrea,

vielen, vielen Dank für deine ausführliche Antwort. Ich bin bisher immer davon ausgegangen, dass, analog zur Rechtevergabe unter Debian, nur dem User root erlaubt ist, global alle Datenbanken zu einzusehen und zu verändern. Also habe ich bisher immer unter Debian einen User mit eingeschränkten Rechten erstellt, diesen mit phpmyadmin in der Mysql-Datenbank angelegt und mit globalen Rechten versehen in der Annahme, dass sich diese globalen Rechte nur auf die von diesem User angelegten Datenbanken auswirken. Unglaublich blöd habe ich mir da selbst ins Knie geschossen. Die Rechte sind jetzt angepasst, auch die Tabelle ist wieder angelegt. Bei meiner nächsten Installation wird es den User root so nicht mehr in der Datenbank geben, aber vorher kaufe ich mir ein Buch zu dem Thema.

Vielen Dank für Deine Erklärung, du hast mir die Augen geöffnet. Ich wünsche dir noch fröhliche Feiertage und einen guten Rutsch ins nächste Jahr.

Mit freundlichen Grüßen,
Frank
Frank_brb
 
Posts: 2
Joined: 24. December 2011 12:14
Operating System: Debian

Re: Rechte eines Users in den Datenbanken

Postby Altrea » 25. December 2011 13:23

Nichts zu danken, freut mich dir helfen zu können :D
Dann markiere ich den Beitrag mal als gelöst.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64


Return to phpMyAdmin

Who is online

Users browsing this forum: No registered users and 10 guests