2008-09-24 9 views

Antwort

26
mysql> show grants for 'user'@'host' 
1

Wenn Sie bereits einen Web-Server mit PHP läuft, dann ist phpMyAdmin ein recht freundliches Verwaltungstool.

+0

ah-ha! Wenn phpMyAdmin installiert ist, werden die Zuweisungen wesentlich vereinfacht! Toller Tipp :-) – Bromide

5

Sie möchten vielleicht mk-show-grants von Maatkit auschecken, die den aktuellen Satz von Gewährungen für alle Benutzer in einer kanonischen Form ausgeben wird, wodurch die Versionskontrolle oder Replikation einfacher wird.

34

Eine alternative Methode zur neueren Versionen von MySQL ist:

select * from information_schema.user_privileges where grantee like "'user'%"; 

Der mögliche Vorteil bei diesem Format die erhöhte Flexibilität zu überprüfen „Benutzer“ Zuschüsse von jedem Host (konsistente Benutzername angenommen wird) oder zu überprüfen, bestimmte Privilegien mit zusätzlichen Bedingungen (zB privileg_type = 'löschen').

Diese Version ist wahrscheinlich besser für die Verwendung in einem Skript geeignet, während die Syntax "show grants" für interaktive Sitzungen besser geeignet ist (mehr "für Menschen lesbar").

+0

+1: Dies ermöglicht auch die Überprüfung gegen Tabellen und bestimmte Privilegien, was in einigen Fällen nützlich ist (und nicht nur eine textuelle Beschreibung, die von SHOW GRANTS zurückgegeben wird). –

+0

Dies ist auch sehr hilfreich beim Debuggen von unsachgemäß erstellten Grants. Es kann schwierig sein, die benötigten Informationen von SHOW GRANTS zu erhalten, wenn sie für den falschen Benutzer oder Host gewährt wurden. –

+4

Vergessen Sie nicht die anderen Grants-bezogenen Tabellen SCHEMA_PRIVILEGES, TABLE_PRIVILEGES und sogar COLUMN_PRIVILEGES – KCD

6

Sie konnten dieses versuchen:

SELECT GRANTEE, PRIVILEGE_TYPE FROM information_schema.user_privileges; 
SELECT User,Host,Db FROM mysql.db; 
Verwandte Themen