2010-11-18 10 views
8

Puedo insertar, actualizar, eliminar, etc. en una tabla en mi base de datos MySQL, pero no puedo mostrar el estado de la tabla. ¿Alguien sabe qué privilegio (s) se necesita para hacer esto?Permisos adecuados para "SHOW TABLE STATUS" en MySQL

Aquí es mi mensaje de error:

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

Buena pregunta! El manual está completamente mudo en esto. 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 - la última parte más el comentario del usuario refieren indirectamente SELECT = SHOW; sin embargo, si el usuario puede actualizar/eliminar/insertar, no está seguro por qué está bloqueado, seleccione – ajreal

+0

Este podría ser su problema: http://stackoverflow.com/questions/ 6527599/mysql-forgets-who-is-logged-in-command-denied-to-user –

Respuesta

1

Privilegios mínimos (solo seleccionar) es todo lo que necesito para obtener el estado de la tabla. ¿Qué versión de mysql?

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

a continuación:

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

obras.

¿Qué significa esto para usted?

show grants for [email protected]; 
0

parece extraño ... incluso mis usuarios de MySQL con priveledges mínimas pueden hacer SHOW TABLE STATUS está en sus respectivas bases de datos.

¿Puedes dar un ejemplo de la sintaxis exacta que estás intentando?

p. Ej. SHOW TABLE STATUS IN sample LIKE 'users'

0

Tal vez intente otra manera de ver toda la información acerca de una tabla en particular,
especialmente la columna de la comenta (al lado de "acceso denegado" durante SHOW TABLE STATUS):

un acceso a la INFORMATION_SCHEMA de la base de datos directamente (si tiene el privilegio SELECT ).

Para obtener información sobre la propia tabla (normalmente un tupel):

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

Para obtener información sobre las columnas:

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

sólo funcionó para mí.


Además, un

SHOW TABLES FROM information_schema; 

le ofrece todos los disponibles "tablas de información".


y/o use un acceso directo, como se menciona en "Show Comment of Fields FROM Mysql Table"

SHOW FULL COLUMNS FROM my_tab_name; 
Cuestiones relacionadas