2010-11-18 4 views
8

Je peux insérer, mettre à jour, supprimer, etc. dans une table de ma base de données MySQL mais je ne peux pas afficher l'état de la table. Est-ce que quelqu'un sait quel (s) privilège (s) est nécessaire pour le faire?Autorisations appropriées pour "SHOW TABLE STATUS" dans MySQL

Voici mon message d'erreur:

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

Bonne question! Le manuel est complètement muet à ce sujet. http://dev.mysql.com/doc/refman/5.1/fr/grant.html#grant-table-privileges –

+0

http://dev.mysql.com/doc/refman/5.0/fr/show.html - la dernière partie plus le commentaire de l'utilisateur référencent indirectement SELECT = SHOW, cependant, si l'utilisateur est capable de mettre à jour/supprimer/insérer, pas sûr pourquoi est bloqué de sélectionner – ajreal

+0

Cela pourrait être votre problème: http://stackoverflow.com/questions/ 6527599/mysql-oublie-qui-est-connecté-dans-commande-refusé-à-utilisateur –

Répondre

1

Les privilèges minimaux (select only) sont tout ce dont j'ai besoin pour obtenir l'état de la table. Quelle version de mysql?

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

alors:

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

œuvres.

Qu'est-ce que cela vous rapporte?

show grants for [email protected]; 
0

... même semble étrange que mes utilisateurs MySQL avec un minimum priveledges peuvent faire est sur leurs bases de données respectives TABLE SHOW STATUS. Pouvez-vous donner un exemple de la syntaxe exacte que vous essayez d'utiliser?

par exemple. SHOW TABLE STATUS IN sample LIKE 'users'

0

Peut-être essayer une autre façon de voir toutes les informations sur une table particulière,
en particulier la colonne les commentaires (à côté de "accès refusé" pendant SHOW TABLE STATUS):

Accéder à la INFORMATION_SCHEMA de la base de données directement (si vous avez le privilège SELECT ).

Pour des informations sur la table elle-même (normalement un tupel):

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

Pour des informations sur les colonnes:

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

Il fonctionne simplement pour moi.


En outre, un

SHOW TABLES FROM information_schema; 

vous offre toutes les informations "tables" disponibles.


et/ou utiliser un raccourci, comme mentionné dans "Show Comment of Fields FROM Mysql Table"

SHOW FULL COLUMNS FROM my_tab_name;