2010-11-18 6 views
8

Ich kann eine Tabelle in meiner MySQL-Datenbank einfügen, aktualisieren, löschen usw., aber ich kann den Tabellenstatus nicht anzeigen. Weiß jemand, welche Berechtigung (en) benötigt wird, um dies zu tun?Korrekte Berechtigungen für "SHOW TABLE STATUS" in MySQL

Hier ist meine Fehlermeldung:

Access denied for user 'admin459'@'localhost' to database 'sample' 
+0

Gute Frage! Das Handbuch ist komplett stumm. http://dev.mysql.com/doc/refman/5.1/en/grant.html#grant-table-privileges –

+0

http://dev.mysql.com/doc/refman/5.0/en/show.html - Der letzte Teil und der Benutzerkommentar verweisen indirekt auf SELECT = SHOW. Wenn der Benutzer jedoch aktualisieren/löschen/einfügen kann, ist nicht sicher, warum er blockiert ist. Wählen Sie – ajreal

+0

. Dies könnte Ihr Problem sein: http://stackoverflow.com/questions/ 6527599/mysql-forgets-wer-ist-eingeloggt-Befehl-verweigert-an-Benutzer –

Antwort

1

Minimal (nur Auswahl) Privilegien ist alles was ich brauche, um den Tabellenstatus zu bekommen. Welche Version von MySQL?

grant select on test_dev.districts to [email protected] identified by 'monkey'; 

dann:

mysql -pmonkey -u td3 TAMS_development -e 'show table status;' 

funktioniert.

Was bedeutet das für Sie?

show grants for [email protected]; 
0

scheint seltsam ... auch mein MySQL-Benutzer mit minimalem priveledges kann auf ihren jeweiligen Datenbanken SHOW TABLE STATUS ist zu tun.

Können Sie ein Beispiel für die genaue Syntax geben, die Sie versuchen?

z.B. SHOW TABLE STATUS IN sample LIKE 'users'

0

Vielleicht eine andere Art und Weise versuchen, alle Informationen zu einer bestimmten Tabelle anzuzeigen,
vor allem die Spalte kommentiert (neben während SHOW TABLE STATUS „Zugriff verweigert“):

Besuchen Sie das INFORMATION_SCHEMA von die Datenbank direkt (wenn Sie das SELECT-Privileg haben).

Für Informationen über die Tabelle selbst (in der Regel ein Tupel):

SELECT 
    * 
FROM 
    information_schema.tables 
WHERE 
     table_schema = 'my_db' 
    AND table_name = 'my_tab_name' 
; 

Für Informationen über Spalten:

SELECT 
     table_name 
    , column_name 
    , column_comment 
FROM 
    information_schema.columns 
WHERE 
     table_schema = 'my_db' 
    AND table_name = 'my_tab_name' 
; 

Es ist für mich gerade gearbeitet.


Des Weiteren ein

SHOW TABLES FROM information_schema; 

bietet Ihnen alle verfügbaren "Information-Tabellen".


und/oder eine Verknüpfung verwenden, wie erwähnt in "Show Comment of Fields FROM Mysql Table"

SHOW FULL COLUMNS FROM my_tab_name;