Tabelle mittels phpMyAdmin umbenennen

Manche Dinge sollten einfach sein und sind es auch – wenn man weiß an welcher Stelle man suchen muss. In diese Kategorie fiel bei mir das Umbenennen von Tabellen mittels phpMyAdmin.

Der Operationen-Tab unter phpMyAdmin

Der Operationen-Tab unter phpMyAdmin

Um eine Tabelle umzubenennen muss diese im ersten Schritt in der Baumansicht auf der linken Seite ausgewählt werden. In der Datenansicht auf der rechten Seite findet man anschließend unter anderem den Tab Operationen. Eine der Optionen welche in diesem Tab unter Tabellenoptionen zu finden ist das Umbenennen von Tabellen.

Primärschlüssel unter MySQL neu durchnummerieren

In einer Datenbanktabelle verfügt man im Normalfall über ein Feld, welches als Primärschlüssel fungiert. Dieses Feld ist dabei in den meisten Fällen als Integer mit einer Autoinkrement-Funktion ausgelegt. Unter Umständen kann es passieren, das man diese ID neu von 1 an vergeben möchten, also ein sogenanntes Renumbering durchführen möchte. Mittels SQL kann man das ganze dabei wie folgt erreichen:

SET @a = 0;
UPDATE tabellenName SET ID = (@a := @a +1);
ALTER TABLE tabellenName  AUTO_INCREMENT = 1;

Bei der Ausführung dieser Befehle wird das Feld ID ab 1 neu durchnummeriert und der Autoinkrement-Index auf den entsprechenden Wert gesetzt.

Verwaltungswerkzeug für SQLite-Datenbanken

Wer auf der Suche nach einem Verwaltungswerkzeug für SQLite-Datenbanken ist, sollte sich den freien Database Browser for SQLite anschauen. Mit Hilfe der Anwendung können die Datenbanken gelesen und bearbeitet werden.

Die Oberfläche mit geöffneter Oberfläche

Die Oberfläche mit geöffneter Oberfläche

Verfügbar ist der SQLite Browser für Linux, Mac OS X und Windows. Die freie Software ist unter der GPL in der Version 2 und höher lizenziert. Der Quelltext ist auf GitHub zu finden. Die Kompilate können über die offizielle Webseite unter sqlitebrowser.org bezogen werden.

Exploit Database

Exploits (also ein Stück Quellcode zum Ausnutzen einer Schwachstelle) gibt es wie Sand am Meer. Manchmal möchte man sich einen solchen für eine bestimmte Anwendung anschauen und testen. An diesem Punkt kommt die Exploit Database ins Spiel, welche sich selbst so beschreibt:

The Exploit Database (EDB) – an ultimate archive of exploits and vulnerable software. A great resource for penetration testers, vulnerability researchers, and security addicts alike. Our aim is to collect exploits from submittals and mailing lists and concentrate them in one, easy to navigate database.

Zur Zeit archiviert die Exploit Database über 30.000 unterschiedliche Exploits. Die Exploits auf der Seite sind nach Kategorien sortiert und können auch durchsucht werden. Betrieben wird die Seite dabei von der Firma Offensive Security, welche unter anderem für die Entwicklung von Kali Linux verantwortlich ist.

exploit-db.com

exploit-db.com

Neben der offiziellen Seite ist die Exploit Database auch auf Twitter und Facebook zu finden.

MySQL Improved Extension

Wenn man früher unter PHP eine MySQL-Datenbank ansprechen wollte, so bediente man sich der Befehle mysql_connect, mysql_select_db, mysql_query und Co. Das Problem an dieser API ist, das sie deprecated also veraltet ist und damit nicht mehr genutzt werden sollte:

$db = mysql_connect ($host, $user, $password) or die ("Es konnte keine Verbindung zum Datenbankserver hergestellt werden");
mysql_query("SET NAMES 'UTF8'");
mysql_select_db ($name, $db) or die("Die Datenbank \"$name\" konnte nicht ausgewählt werden");

Stattdessen soll man die MySQL Improved Extension kurz Mysqli nutzen. Dabei handelt es sich um eine moderne objektorientierte API für den Zugriff auf MySQL in PHP. Eine einfache Abfrage mittels Mysqli sieht dabei wie folgt aus:

$mysqli = new mysqli($databaseHost, $databaseUsername, $databasePassword, $databaseName);
$sql = "SELECT * FROM token";
$result = $mysqli->query($sql);

for ($row_no=$result->num_rows-1; $row_no>=0; $row_no--) 
{
    $result->data_seek($row_no);
    $row=$result->fetch_assoc();
    echo " id = " . $row['id'] . "\n";
}

Die API unterscheidet sich dabei nicht groß von der alten API, so das Umstieg hier relativ einfach fallen sollte. Auf der entsprechenden Dokumentationsseite auf php.net finden sich noch viele weitere Beispiele.