Autor Beitrag
Sönke
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 03.09.08 20:28 
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 ;)


Zuletzt bearbeitet von Sönke am Do 04.09.08 10:39, insgesamt 1-mal bearbeitet
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: 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:

_________________
Gruß
Hansa
Sönke Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: 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:
ausblenden 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:
ausblenden 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ß ;-)