ForumFeldtypen in mysql sperren
dracko – Dienstag, 05. April 2005 11:12 Uhr

Hallo zusammen,
ich muß einen MySql Server unter Debian so einrichten das in keiner Datenbank Binär Daten abgelget werde könen.
Will heissen BLOB und die anderen Binär Feldtypen sollten nicht zur Verfügung stehen.
Gibt es eine Globale Server Einstellung mit der es möglich ist so etwas zu realisieren??

Danke schon mal für eure Mühe

MfG

Dracko

1 Antwort
Jan Kandziora – Dienstag, 05. April 2005 14:02 Uhr

Du verwechselst die Datenbank mit der Gesamtsoftware.

Die Datenbank ist nur eine strukturierte Datenhaltung — alle Konsistenzprüfungen musst du in zusätzlicher Software realisieren. Von außen sollte kein Benutzer direkt SQL-Befehle absetzen können. Dann gibt’s solche Situationen wie die von dir beschriebene auch nicht.

Jan

dracko – Dienstag, 05. April 2005 15:08 Uhr

Es soll ein offener Datenbank Server werden wo div Leute eine Datenbank drauf pflegen können. Ein WebServer mit php ist auch noch mit von der Party.
Als Admin-Oberfläche wird PHPMyAdmin eingesetzt.
Jeder Anwender hat volle Rechte an seiner Datenbank, aber keiner soll die Möglichkeit haben BLOB´s benutzen zu können. Daher die Anforderung diesen Feldtyp global zu unterdrücken!!!

MfG
Dracko

rottriges – Dienstag, 05. April 2005 15:47 Uhr

Hi Dracko,

ich muss Jan Recht geben. In deinenm Fall ist PHPMyadmin die Software mit der du bzw. der User, die Datenbank administrierst.
Eigentlicht müsste es ausreichen, wenn du in der etc/phpmyadmin/config.inc.php folgenden Abschnitt suchst und die gewünschten Feldtypen auskommentierst.

/**
* MySQL settings
*/
// Column types
$cfgColumnTypes = array(
‘TINYINT’,
‘SMALLINT’,
‘MEDIUMINT’,
‘INT’,
‘BIGINT’,
‘FLOAT’,
‘DOUBLE’,
‘DECIMAL’,
‘DATE’,
‘DATETIME’,
‘TIMESTAMP’,
‘TIME’,
‘YEAR’,
‘CHAR’,
‘VARCHAR’,
‘TINYBLOB’,
‘TINYTEXT’,
‘TEXT’,
/** ‘BLOB’,
‘MEDIUMBLOB’,*/
‘MEDIUMTEXT’,
‘LONGBLOB’,
‘LONGTEXT’,
‘ENUM’,
‘SET’
);

// Atributes
$cfgAttributeTypes = array(
”,
//’BINARY’,
‘UNSIGNED’,
‘UNSIGNED ZEROFILL’
);

dracko – Dienstag, 05. April 2005 21:03 Uhr

Hallo,
Danke für den Tip!!
Werde es so Versuchen.

MfG
Dracko

Matthias Bläsing – Dienstag, 05. April 2005 21:17 Uhr

Vorsicht! Was bei den meisten Programmen gefürchtet ist (SQL-Injection) ist bei phpymadmin direkt eingebaut. Solange wie SQL Befehle einzugeben sind ist das ganze aussichtslos.

BTW: Warum soll das eigentlich funktionieren? Im Zweifel kann ich die Daten Base64 codiert als Text in die Datenbank schieben …

rottriges – Mittwoch, 06. April 2005 10:55 Uhr

Vorsicht! Was bei den meisten Programmen gefürchtet ist (SQL-Injection) ist bei phpymadmin direkt eingebaut.

Das ist richtig, man kann aber sehr leicht bei phpmyadmin gewisse Optionen ausbauen. Man findet unter usr/share/phpmyadmin alle php-Seiten, die von phpmyadmin verwendet werden. Dort kann man sämtliche Optionen ganz leicht ausbauen bzw. nach seinem Geschmack umbauen. Empfehlenswert ist es in jeden Fall vorher, die Originaldateien zu sichern.

Im Zweifel kann ich die Daten Base64 codiert als Text in die Datenbank schieben

Die Anforderung ist doch keine Binärdateien in die Datenbank aufzunehmen. Wie du selber schreibst, handelt es sich nach der Kodierung in Base64, um eine Textdatei und nicht um eine Binärdatei. Um wieder eine Binärdatei zu erhalten muss man diese Textdatei ja erst wieder dekodieren. Somit hat man keine Binärdatei in die Datenbank aufgenommen und ist der Anforderung gerecht geworden. …oder sehe ich das Falsch???