mySQL Information Schema: Tables

Die Information Schemas unter mySQL liefern praktisch alle relevanten Informationen über die DB und deren Inhalt. Besonders praktisch für Anwender welche kein UI (z.B. phpmyadmin) zur Verfügung haben und mit der mySQL-Konsole arbeiten müssen (dürfen/können!).

Sehr informativ sind die Table Schemas.

Folgendes Query listet alle Tabellen, deren Storage Engine, Kollation und die Anzahl Datensätze zurück:

SELECT table_schema, table_name, engine, table_collation, table_rows 
from information_schema.tables 
where table_schema like 'mydb%';

Resultat (z.B. WordPress Blog DB):

mysql> select table_schema, table_name, engine, table_collation, table_rows 
from information_schema.tables 
where table_schema like 'mydb%';
+--------------+-----------------------+--------+-----------------+------------+
| table_schema | table_name            | engine | table_collation | table_rows |
+--------------+-----------------------+--------+-----------------+------------+
| mydb1  | wp_commentmeta        | MyISAM | utf8_general_ci |          0 |
| mydb1  | wp_comments           | MyISAM | utf8_general_ci |          3 |
| mydb1  | wp_contact_form_7     | MyISAM | utf8_general_ci |          1 |
| mydb1  | wp_links              | MyISAM | utf8_general_ci |          2 |
| mydb1  | wp_options            | MyISAM | utf8_general_ci |        269 |
| mydb1  | wp_postmeta           | MyISAM | utf8_general_ci |         69 |
| mydb1  | wp_posts              | MyISAM | utf8_general_ci |        103 |
| mydb1  | wp_prli_clicks        | MyISAM | utf8_general_ci |          1 |
| mydb1  | wp_prli_groups        | MyISAM | utf8_general_ci |          0 |
| mydb1  | wp_prli_link_metas    | MyISAM | utf8_general_ci |          0 |
| mydb1  | wp_prli_links         | MyISAM | utf8_general_ci |          1 |
| mydb1  | wp_term_relationships | MyISAM | utf8_general_ci |        163 |
| mydb1  | wp_term_taxonomy      | MyISAM | utf8_general_ci |         56 |
| mydb1  | wp_terms              | MyISAM | utf8_general_ci |         50 |
| mydb1  | wp_usermeta           | MyISAM | utf8_general_ci |         16 |
| mydb1  | wp_users              | MyISAM | utf8_general_ci |          1 |
+--------------+-----------------------+--------+-----------------+------------+
16 rows in set (0.74 sec)

Natürlich sind hier auch weitere Informationen abrufbar. Erste Hilfe bietet hier einmal mehr die mySQL Dok

Schlagworte: ,

2 Kommentare zu „mySQL Information Schema: Tables“

  1. r00t sagt:

    Zum einen sind die Information-Schema Tabellen sicherlich informativ für normale Nutzer, zum anderen sind sie aber auch für potentielle Angreifer von grossem Interesse: Sie verraten die Namen der Tabellen und Spalten, was bei einem SQL-Injection Angriff beispielsweise sehr viel Zeit erspart (man muss potentiell interessante Tabellennamen nicht erraten). Leider kann man AFAIK den Zugriff auf diese Tabellen nur einschränken aber nicht komplett verbieten. Noch ein Grund warum „Security by Obscurity“ nicht funktioniert 😉

  2. Alonso sagt:

    Nein, dies ist aktuell nicht möglich. Zitat mySQL-Dok: „Jeder MySQL-Benutzer hat das Recht, auf diese Tabellen zuzugreifen, allerdings nur auf diejenigen Tabellenzeilen, die sich auf Objekte beziehen, für welche er die richtigen Zugriffsberechtigungen hat. „. Es lohnt sich also auch weiterhin sichere Applikationen zu entwickeln – die passenden Werkzeuge dazu gibt es ja.. 😉

Kommentieren


Social Widgets powered by AB-WebLog.com.