Entwickler-Ecke
Programmiersprachen (Server) - Firebird Rechteprobleme mit User und Role (interbase.inc.PHP
Sönke - Mi 03.09.08 20:28
Titel: Firebird Rechteprobleme mit User und Role (interbase.inc.PHP
Moin Moin,
seid kurzem benutzen wir nun auch Delphi4PHP, komm da aber irgendwie nicht weiter.
Zum einen, was schade ist, dass ich bei der Komponente IBDatabase (bzw Database) keine ROLE einstellen kann?
Naja, geht zur Not auch erstmal ohne, dacht ich... bloß wenn ich nicht den User SYSDBA nehme bekomm ich Probleme mit den Rechten, was mich irgendwie verwundert.
Connected bekomm ich die Datenbank, bloß wenn ich eine Tabelle activieren will sagt er mir:
"Application raised an exception class EDatabaseError with message 'Error executing query: select * from T_MITARBEITER [no permission for read/select access to TABLE T_MITARBEITER ]'
Click for detailed information"
Hab dem User auch per IB-Expert alle Rechte gegeben.
Hat da wer Erfahrung oder Ideen. Weil nur mit SYSDBA ist ziemlich blöde, da wenn mehr angemeldet sind weiß ich ja nicht mehr wer wer ist :D
schonmal Danke für eure Aufmerksamkeit ;)
hansa - Mi 03.09.08 20:47
Wenn ich mich nicht irre, dann läuft das so : Role anlegen und dieser die Rechte geben. Dann dem User diese Role zuordnen. User alleine nützt nichts. Ohne Gewähr ! Müsste ich nachlesen.
Es gibt allerdings ein IBExpert-Video, wo das genau beschrieben ist ! Kann in IBExpertLive gezeigt werden oder irgendwo bei Google-Video / YouTube. :gruebel:
Sönke - Mi 03.09.08 21:28
ok, vielleicht sollt ich noch erwähnen das mit meinem User ich in meinem normalen Delphi-Programm keine Probleme habe.
User hat Rechte zu allen Rollen, und auch ohne Rolle alle Rechte. Problem liegt wirklich irgendwie an Delphi4PHP, da ich dort irgendwie beim Connecten ja auch keine Rolle zuweisen kann :-/
Aber trotzdem danke für die Hilfe :D
Sönke - Do 04.09.08 10:38
Titel: [gelöst] Firebird nun mit ROLE möglich (interbase.inc.PHP)
Moin,
ich werd affig, habs natürlich nun hinbekommen.
Man muss nur unter dem Verzeichnis [vcl] die Datei "interbase.inc.PHP" anpacken, erweitern/ändern.
hier mein Code für alle dies wissen wollen:
Habe nach dem Charset so ca bei Zeile 182 folgendes hinzugefügt:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| /** * * Firebird/InterBase Role * */ protected $_role="";
function getRole() { return $this->_role; } function setRole($value) { $this->_role=$value; } function defaultRole() { return ""; } |
Dann muss noch die [function doConnect()] angepasst werden:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| function doConnect() { if (($this->ControlState & csDesigning)!=csDesigning) { $dbname=$this->_databasename; if ($this->_host!='') $dbname=$this->_host.':'.$dbname;
//ALT:$this->_connection = ibase_pconnect ($dbname, $this->UserName, $this->UserPassword,$this->_charset, '100', $this->Dialect); //NEU mit ROLE: $this->_connection = ibase_pconnect ($dbname, $this->UserName, $this->UserPassword,$this->_charset, '100', $this->Dialect, $this->_role);
if (!$this->_connection) { DatabaseError("Cannot connect to database server"); } } } |
viel Spaß ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!