Entziehen bestimmter Tabellenrechte von einem datenbankweiten Administrator
Als MySQL-Administrator müssen Sie Benutzern möglicherweise gelegentlich vollständige Berechtigungen über einen Zeitraum hinweg gewähren Datenbank, während der Zugriff auf eine bestimmte Tabelle eingeschränkt wird. Diese scheinbar einfache Aufgabe kann mit herkömmlichen Methoden überraschend schwierig zu bewältigen sein.
Gewähren aller Berechtigungen außer „Auswählen“
Ein gängiger Ansatz besteht darin, alle Berechtigungen für die Datenbank zu gewähren (z. B. db_name.*), gefolgt von einer spezifischen Gewährung für ausgewählte Berechtigungen für die ausgeschlossene Tabelle. Diese Methode ist jedoch unwirksam, da die nachfolgende Gewährung den ursprünglichen uneingeschränkten Zugriff nicht außer Kraft setzt.
Ansatz selektiver Berechtigungen
Die bevorzugte Lösung besteht darin, Berechtigungen für eine Tabelle zu erteilen. auf Tabellenbasis, mit Ausnahme der Tabelle, die Sie einschränken möchten. Während dieser Ansatz für Datenbanken mit zahlreichen Tabellen mühsam sein kann, gewährleistet er Präzision und verhindert unbeabsichtigten Zugriff auf die geschützte Tabelle.
Verwendung des Informationsschemas
Der Einfachheit halber können Sie dies tun Nutzen Sie die Datenbank „information_schema“, um die erforderlichen Gewährungsanweisungen zu generieren. Die folgende Abfrage gibt eine Liste von Gewährungsbefehlen für alle Tabellen in einer bestimmten Datenbank zurück, mit Ausnahme der Tabelle, die Sie schützen möchten:
SELECT CONCAT("GRANT UPDATE ON db.", table_name, " TO user@localhost;") FROM information_schema.TABLES WHERE table_schema = "YourDB" AND table_name <> "table_to_skip";
Schlussfolgerung
Alle gewähren Berechtigungen für eine Datenbank mit Ausnahme einer bestimmten Tabelle können erreicht werden, indem Berechtigungen tabellenweise manuell erteilt werden oder indem die Datenbank „information_schema“ verwendet wird, um Gewährungsanweisungen für alle Tabellen mit Ausnahme der zu schützenden Tabelle zu generieren. Der letztere Ansatz bietet eine effiziente und zuverlässige Lösung für diese häufige MySQL-Verwaltungsaufgabe.
Das obige ist der detaillierte Inhalt vonWie entziehe ich einem datenbankweiten Administrator in MySQL Tabellenrechte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!