seeseekey.net - Invictus Deus Ex Machina

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

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.

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.

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

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.

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

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

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.

Bei einer ownCloud-Instanz welche schon einige Betriebsstunden auf dem Buckel hat, kann es zu einem unschönen Effekt kommen. Beim Versuch den Papierkorb über die Funktion „Gelöschte Dateien“ zu leeren, versucht ownCloud alle Dateien aufzulisten, was allerdings nicht gelingt. Der Browser friert ein und das Leeren des Papierkorbes ist nicht möglich.

Der Button um die gelöschten Dateien aufzurufen

Auch wenn das Leeren des Papierkorber nach Meinung der ownCloud-Entwickler nicht notwendig ist, da die Dateien nach einer Weile weggeworfen werden, sollte es trotzdem eine Lösung geben um den Papierkorb manuell zu leeren. Ein Workarround ist es den Papierkorb direkt zu löschen in dem man das Verzeichnis „owncloud/data/username/files_trashbin/ löscht. Anschließend müssen noch zwei Tabellen in der Datenbank bereinigt werden:

TRUNCATE TABLE oc_files_trashsize;
TRUNCATE TABLE oc_files_trash;

Eine weitere Möglichkeit diese Problematik zu entschärfen, ist es die Vorhaltezeit von gelöschten Dateien von 180 Tagen auf 30 Tage zu reduzieren. Dazu öffnet man die config.php Datei welche im config-Ordner zu finden ist und trägt folgenden Wert ein:

'trashbin_retention_obligation' => 30,

Damit wird verhindert das sich zu viele Dateien im Papierkorb ansammeln und das Problem deutlich entschärft.

Möchte man unter Windows eine entfernte MySQL-Datenbank ansprechen, so kann man hierfür HeidiSQL nutzen. Mit der Software Sequel Pro gibt es so etwas ähnliches für Mac OS X. Die Software kann dabei auf der offiziellen Seite bezogen werden.

Sequel Pro

Sequel Pro ist unter der MIT-Lizenz verfügbar und somit freie Software. Der Quelltext ist auf Google Code zu finden. Er kann mittels eines SVN Client ausgecheckt werden:

svn checkout http://sequel-pro.googlecode.com/svn/trunk/ sequel-pro

Eine Alternative zu Sequel Pro ist das plattformübergreifende MySQL Workbench, bei welchem es sich ebenfalls um freie Software handelt.

Wer Entity-Relationship-Modelle bzw. die entsprechenden Diagramme (ERD) erstellen möchte, der kann hierfür Software wie die freie MySQLWorkbench nutzen. Für das plattformübergreifende Erzeugen solcher Diagramme kann man allerdings auch die freie Webapplikation wwwsqldesigner nutzen.

Der ERD-Designer in Aktion

Auf der Webseite des Autors gibt es eine Demo zum Ausprobieren. Die in PHP und Javascript geschriebene Software steht dabei unter einer BSD-Lizenz und ist somit freie Software. Bei der Installation muss das entsprechende Archiv nur auf dem Webserver entpackt werden und kann sofort genutzt werden. Nur wer die Möglichkeiten der serverseitigen Speicherung nutzen möchte, muss einige Parameter konfigurieren.

In der Bundesrepublik gibt es unzählige Bauten und Anlagen deren Zweck den wenigsten geläufig sein wird. In einem Projekt des Hobbyhistorikers Michael Grube werden diese gesammelt und auf einer Webseite präsentiert. Das ganze trägt dabei den Namen Geschichtsspuren und ist auf der gleich lautenden Webseite zu finden.

geschichtsspuren.de

Dabei werden auf der Seite verschiedene Datenbanken, wie die Zivilschutzanlagen-Datenbank, die Luftnachrichten-Datenbank und die Geo-DB DDR Geschichte geführt. Ergänzt wird das ganze mit Artikeln rund um solche Anlagen und ähnliche Baulichkeiten.