So gewähren Sie mehreren Benutzern Berechtigungen; MySQL

7

Ich habe folgenden Code:

GRANT SELECT,INSERT,UPDATE ON db1.*
TO user’@example.com;

Ich bin ein Anfänger in mySQL. Ich habe mich gefragt, ob es eine Methode gibt, mit der ich die Berechtigungen für jeden Benutzer in diesem Domänennetzwerk festlegen kann, ohne den obigen Code für jeden Benutzer eingeben zu müssen. % Platzhalter?

Gibt es auch eine Methode wie die Verwendung einer Tabelle, in der ich alle Berechtigungen dieser Benutzer verwalten kann?

Mr.Z.
quelle
Haben Sie eine Tabelle mit einer Liste aller Benutzer?
Wenn ich das tun würde, füge ich einfach die erforderlichen Spalten ein und benenne sie zB Insert_priv? und aktualisieren Sie die Werte auf Ja? oder ist es Y?

Antworten:

9

Mit der GRANT-Syntax können Sie mehrere Benutzer in einer einzigen Abfrage angeben. Sie können dies nicht mit einem Platzhalter tun, aber wenn Sie die Liste bereits haben, können Sie dies tun:

GRANT SELECT,INSERT,UPDATE ON db1.*
TO 'user1', 'user2', 'user3', 'user4', 'user5', 'user6';
Pennen
quelle
2

Wie unter GRANTSyntax dokumentiert :

Kontonamen und Passwörter 

[ deletia ]

Sie können Platzhalter im Hostnamen angeben. Zum Beispiel user_name@'%.example.com'gilt user_namefür jeden Host in der example.comDomäne, und user_name@'192.168.1.%'gilt user_namefür jeden Host in der 192.168.1Klasse C Subnetz.

Die einfache Form Benutzername ist ein Synonym für Benutzername @ '%'.

MySQL unterstützt keine Platzhalter in Benutzernamen.

Sie können Kontoberechtigungen jedoch auch verwalten, indem Sie die MySQL-Grant-Tabellen direkt bearbeiten (und dann ausführen FLUSH PRIVILEGES).

eggyal
quelle
0

Sie können ein PHP-Skript schreiben, um jeder Person Zugriff zu gewähren. Ich würde jedoch nicht empfehlen, für jeden Benutzer neue MySQL-Konten zu erstellen. Ihre Anwendung sollte sich mit allen Lese- / Schreibberechtigungen befassen

Ajtrichards
quelle
Gibt es eine Methode ohne Verwendung von phpmyAdmin oder PHP-Skript? Ich möchte nur die Befehle verwenden, die mir über
Es sei denn, Sie haben die Namen bereits in einer anderen Tabelle gespeichert.