2016-04-19 7 views
1

Ich versuche, alle Privilegien zu einer bestimmten IP zu gewähren, aber wenn ich versuche, die Liste der privilegierten IPs immer nur localhost zeigt, folgte ich den Anweisungen in dies question aber es macht keine Änderungen, was mache ich falsch?Grant ALL on Database es gewährt keine Privilegien für meine spezifische IP

MariaDB [(none)]> GRANT ALL ON database.* TO 'root'@'192.168.3.1' WITH GRANT OPTION; 
Query OK, 0 rows affected (0.00 sec) 

MariaDB [(none)]> FLUSH PRIVILEGES; 
Query OK, 0 rows affected (0.00 sec) 

MariaDB [(none)]> show grants; 
+---------------------------------------------------------------------+ 
| Grants for [email protected]           | 
+---------------------------------------------------------------------+ 
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION | 
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION  | 
+---------------------------------------------------------------------+ 
2 rows in set (0.00 sec) 

mysql> show slave status; 
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation 
mysql> show grants; 
+------------------------------------------------------------------+ 
| Grants for [email protected]          | 
+------------------------------------------------------------------+ 
| GRANT USAGE ON *.* TO 'root'@'192.168.1.5'      | 
| GRANT ALL PRIVILEGES ON `western_star`.* TO 'root'@'192.168.1.5' | 
+------------------------------------------------------------------+ 
2 rows in set (0.00 sec) 

Hinweis:

ich noch einmal verweigert bekommen, obwohl ich die Ferne mit meinem Benutzer angemeldet, und ich habe die Berechtigungen.

mysql> show slave status; 
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation 
mysql> show grants; 
+------------------------------------------------------------------+ 
| Grants for [email protected]          | 
+------------------------------------------------------------------+ 
| GRANT USAGE ON *.* TO 'root'@'192.168.1.5'      | 
| GRANT ALL PRIVILEGES ON `western_star`.* TO 'root'@'192.168.1.5' | 
+------------------------------------------------------------------+ 
2 rows in set (0.00 sec) 
+1

HINWEIS: Die Anweisung FLUSH PRIVILEGES ist redundant. Diese Operation wird nur benötigt (ich glaube), wenn wir DML-Änderungen an den Privilegientabellen in der MySQL-Datenbank vornehmen. GRANT- und REVOKE-Vorgänge führen automatisch die erforderlichen Vorgänge aus, um die Berechtigungen wirksam werden zu lassen. – spencer7593

Antwort

4

Versuchen Sie, diese Anweisung ausgeführt wird:

SHOW GRANTS FOR 'root'@'192.168.3.1' ; 

und von diesem auf die Rückkehr vergleichen:

SHOW GRANTS FOR 'root'@'localhost' ; 

SHOW GRANTS zeigt die Zuschüsse für die aktuellen Benutzer.

Beachten Sie, dass "root @ localhost" nicht derselbe Benutzer wie "[email protected]" ist. MySQL identifiziert einen Benutzer sowohl durch den Benutzer als auch durch den Host. (Das sind zwei verschiedene Benutzer.)


Followup

Der SUPER und REPLICATION CLIENT Privilegien globale Privilegien sind, nicht Datenbank Privilegien. Syntax für die Gewährung dieser Berechtigungen ist ON *.*. Beispiel:

GRANT REPLICATION CLIENT ON *.* TO 'root'@'192.168.1.5' ; 
+0

Ich denke, die Verwirrung war, dass ich dachte "show grants" würde alle Zuschüsse für alle Benutzer auflisten. – VaTo

+0

Bitte überprüfen Sie meine bearbeitete Frage. – VaTo

Verwandte Themen