isql-fb probléma

Sziasztok!

Olyan problámám lenne, hogy próbálok beüzemelni egy firebird adatbázis szervert debian linux alatt. Az adatbázis szerver feltelepül és szépen lehet is látni, hogy a 3050 porton figyel. A bajom akkor kezdődik amikor szeretnék az isql-fb utility-vel készíteni egy adatbázist, ekkor ezt kapom válaszul:

# isql-fb -u sysdba -p masterkey
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 'proba.gdb';
Statement failed, SQLCODE = -902

I/O error for file "/root/proba.gdb"
-Error while trying to create file
-Permission denied
SQL>

De akkor is az SQLCODE = -902 hibakódot kapom, amikor egy már meglévő adatbázis fájlhoz szeretnék csatlakozni.

Mit tudok ilyenkor tenni?

Segitségeteket előre is köszönöm!

Hozzászólások

firebird usernek van írási joga abban a könyvtárban, ahol létre akarod hozni az új adatbázist? (/root-ban nem biztos!)

Sziasztok!
Mégis csak szenvedek! Ha már meglévő adatbázishoz szeretnék csatlakozni, akkor ezt a hibaüzenetet kapom:

#isql-fb -u sysdba -p masterkey
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect '/home/a/test.gdb';
Statement failed, SQLCODE = -902

Your login SYSDBA is same as one of the SQL role name. Ask your database administrator to set up a valid Firebird login.
SQL>

A meglévő adatbázison (*.gdb) is állítsad be a jogosultságot. Persze nem árt ha az "a" nevü lúzer könyvtárába beléphet a "firebird" felhasználó.
Az ilyenek elkerülése végett root-tal létrehoznék egy könyvtárat: például "/usr/local/data/fb". Meg kell adni erre a könyvtárra a "firebird"-nek minden jogot, csak neki! A többieknek csak olvasás.
Átváltanék "firebird" felhasználóra, és oda létrehoznám az adatbázist ami kell....
Ide így mindig lesz joga írni!!!

Perger Attila

Ezeket már végig csináltam. Addig jó a dolog, hogy létrehozom az adatbázist. (talán most már a jogosúlságok is jók) Tudok csatlakozni hozzá, táblákat készíteni, stb. Amikor egy előzőleg létrehozott gbak-kal készítettet mentést szeretnék visszahúzni rá, akkor bolondul meg minden. A visszaállítás lefut és a végén kapok egy ilyen üzit:

gbak: ERROR: Your login SYSDBA is same as one of the SQL role name. Ask your database administrator to set up a valid Firebird login.
gbak: Exiting before completion due to errors

Innentől nem tudok az adatbázishoz hozzácsatlakozni. Lehet még ez is jogosultság kérdése?

Akkor van ilyen hibaüzenet, ha abban az adatbázisban, amit meg szeretnél nyitni létezik egy SYSDBA nevű role. Azzal a felhasználónév / jelszóval kéne belépned, akinek van jogosultsága az adatbázis táblák eléréséhez (és nem a SYSDBA user). Általában ez egy bevett védelmi módszer, amivel megakadályozzák, hogy az adatbázis fájl áthelyezésével az alapértelmezett SYSDBA felhasználó nevében hozzáférjél az adatokhoz.

Debian alatt, ha csomagbol tetted fel a firebird2-t, akkor a /var/lib/firebird2-ben kialakit egy konyvtar-strukturat. Celszeru minden db-t oda helyezni. Itt mar kialakitott a firebird tulajdonu konyvtarstruktura (firebird.firebird: 770) Van a /etc/firebird2-ben egy aliases.conf nevu file, ebben lehet az adatbazisokhoz aliast rendelni, akkor kivulrol nem kell tudni az eleresi utvonalat.
pl. employee.fdb=/var/lib/firebird2/data/employee.fdb

igy localhost:employee.fdb eleressel tudod hasznalni. Ha grafikus kornyezetet hasznalsz, ajanlom inkabb a flamerobin-t, kisse kenyelesebb, mint az isql-fb. Persze, ha scriptbol hivod, akkor az kell.