mysql connection readonly machen
alex
- perl
huhu folx.
Ich würde gerne ungeachtet von allen GRANT Regeln eine Verbindung zu mysql mit perl dbi herstellen, wo nur lesezugriff vorgesehen ist.
a) ist dies möglich?
b) wie realisiere ich das?
auf der cpan dbi-seite findet sich ein hinweis zu ReadOnly (boolean, inherited), leider kann ich trotz setzung des attributes auf 1 noch daten in mysql schreiben.
wenn ich nach der erzeugung des handles versuche readonly hinzuzufügen:
$dbh->{ ReadOnly } = 1;
passiert leider:
Can't get DBI::db=HASH(0x870bbe4)->{ReadOnly}: unrecognised attribute name at /usr/lib/perl5/DBI.pm line 675.
hat jemand ne idee?
huhu folx.
Ich würde gerne ungeachtet von allen GRANT Regeln eine Verbindung zu mysql mit perl dbi herstellen, wo nur lesezugriff vorgesehen ist.
a) ist dies möglich?
b) wie realisiere ich das?auf der cpan dbi-seite findet sich ein hinweis zu ReadOnly (boolean, inherited), leider kann ich trotz setzung des attributes auf 1 noch daten in mysql schreiben.
wenn ich nach der erzeugung des handles versuche readonly hinzuzufügen:
$dbh->{ ReadOnly } = 1;
passiert leider:
Can't get DBI::db=HASH(0x870bbe4)->{ReadOnly}: unrecognised attribute name at /usr/lib/perl5/DBI.pm line 675.
hat jemand ne idee?
Wäre es nicht viel sicherer und sinnvoller, einen Datenbankuser zu benutzten, der nur Leserechte in dem entsprechendem Table gesitzt? Das ist einfach zu verwalten und Du brauchst Dir um die dbi-Verbindung keine Sorgen machen.
Auch für dich gilt das, was ich in meinem Posting Schöner Posten geschrieben habe.
Siechfred
Ich würde gerne ungeachtet von allen GRANT Regeln eine Verbindung zu mysql mit perl dbi herstellen, wo nur lesezugriff vorgesehen ist.
deine frage ist berechtigt, aber mit meiner einleitung wollte ich solche gegenfragen schon vermeiden.
trotzdem danke
alex
Ich würde gerne ungeachtet von allen GRANT Regeln eine Verbindung zu mysql mit perl dbi herstellen, wo nur lesezugriff vorgesehen ist.
a) ist dies möglich?
Das Attribut ReadOnly hast du ja bereits gefunden.
b) wie realisiere ich das?
Indem du dem Attribut des Treiber-Handles einen Booleschen Wert zuweist, der zu "wahr" evaluiert.
auf der cpan dbi-seite findet sich ein hinweis zu ReadOnly (boolean, inherited), leider kann ich trotz setzung des attributes auf 1 noch daten in mysql schreiben.
Das Ganze scheint ziemlich neu zu sein, prüfe mal deine DBI-Version (aktuell ist 1.59). Ansonsten kannst du auch prüfen, inwieweit dein DBMS sowas unterstützt. Auf die Schnelle gefunden: SET TRANSACTION-Syntax, vmtl. erst ab MySQL 5.
Siechfred