IBExpert scelgo Register DataBase
Server->Remote
ServerName 192.168.1.166 oppure host674
Protocol -> TCP/IP
Version -> Firebird 2.5
DataBaseFile -> /home/maurizio/Test/employee.fdb
Test Connect : non va a buon fine.
Maurizio
^^^^^
Attempting to connect to:
192.168.1.166:/maurizio/Test/employee.fdb
Connecting... Failed!
------------------------------------
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
I/O error during "open" operation for file "/maurizio/Test/employee.fdb".
Error while trying to open file.
No such file or directory.
Attempting to connect to services manager... Passed!
Disconnecting from database... Passed!
Probabilmente hai sbagliato a sbagliare il path del db nella
connessione,
dimenticando di mettere /home/...
Ti consiglio di usare gli alias dei db al posto dei path completi dei
file:
eviti questo tipo di errore e soprattutto se decidi di spostare un
file
in un altro punto del filesystem i client continuano ad andare senza
accorgersi della differenza.
ciao
Giacomo
Il messaggio d'errore e' piuttosto chiaro: probabilmente hai sbagliato
a specificare il path del db (uno e' /home/maurizio/... l'altro /
maurizio/...)
Ti consiglio di utilizzare un alias per accedere ai tuoi db invece di
usare
il path completo. In questo modo eviti errori di questo tipo e puoi
anche
spostare i file nel filesystem senza creare problemi ai client.
ciao
Giacomo
>>
>> Ti consiglio di usare gli alias dei db al posto dei path completi dei
>> file:
>> eviti questo tipo di errore e soprattutto se decidi di spostare un
>> file
>> in un altro punto del filesystem i client continuano ad andare senza
>> accorgersi della differenza.
>>
ho modificato aliases.conf aggiungendo Prova e Test
# ------------------------------
# List of known database aliases
# ------------------------------
#
# Example Database:
# employee.fdb =
/usr/share/doc/firebird2.5-common-doc/examples/empbuild/employee.fdb
employee =
/usr/share/doc/firebird2.5-common-doc/examples/empbuild/employee.fdb
#
# Live Databases:
#
Prova = /home/maurizio/Test/employee.fdb
Test = /home/maurizio/Test/MODULUS.FDB
ripeto il tentativo con
ServerName = 192.168.1.166
Databasefile = Prova
Client Library File -> C:\Programmi\Firebird\Firebird_2_5\bin\fbclient.dll
Attempting to connect to:
192.168.1.166:Prova
Connecting... Failed!
------------------------------------
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
I/O error during "open" operation for file "Prova".
Error while trying to open file.
Permission denied.
Attempting to connect to services manager... Passed!
Disconnecting from database... Passed!
Sul server la porta 3050 e' aperta
Firebird e' attivo (provato da Terminale a fermare e riavviare)
Provo con FlameRobin sul Server Ubuntu, registro il database
employee.fdb , eseguo Connect
*** IBPP:SQL Exception***
Context:DataBase:Connect
Message:isc_attach_database failed
SQL Message:-902
Unsuccessful execution caused by a system error that
precludes succesful execution of subsequent statements
Engine Code: 335544344
Engine Message:
I/O error during "open" operation for file
"/home/maurizio/Test/employee.fdb"
Error while tryning to open file
Permission Denied
^^^^
Quel permission denied mi fa pensare a mancanza di diritti,
ma l'utente maurizio puo' amministrare il sistema.
ciao Maurizio
> Quel permission denied mi fa pensare a mancanza di diritti,
> ma l'utente maurizio puo' amministrare il sistema.
Ma non hai detto come è legato l'utente maurizio al demone firebird.
Probabilmente il problema è esattamente che il programma non ha i
permessi di accesso al file, come è scritto.
Cos'è un "superserver" in ubuntu?
>> Cos'è un "superserver" in ubuntu?
cosa intendi ?
il superverver e' la versione di firebird installata,
di solito chiede classic o superserver.
se non ho capito, spiegami meglio.
> SYSDBA, dopo provo su linux a creare un nuovo utente ed
> accedere con Connect as <nomeutente> e <password>
> creo un Server e aggiungo utenti,
Firebird usa gli utenti del sistema per l'autenticazione?
> cosa intendi ? il superverver e' la versione di firebird installata,
> di solito chiede classic o superserver. se non ho capito, spiegami
> meglio.
Quello, non avevo capito fosse il nome di un pacchetto in ubuntu, ho
appena cercato informazioni su PUC.
> Quel permission denied mi fa pensare a mancanza di diritti,
> ma l'utente maurizio puo' amministrare il sistema.
Non c'entra nulla, Firebird gira con un utente e con un gruppo dedicato:
enrico@whiterabbit:~$ ps -ef|grep firebird
firebird 8719 1 0 00:15 ? 00:00:00 /usr/sbin/fbguard -daemon -
forever -pidfile /var/run/firebird/2.5/fbserver.pid
firebird 8720 8719 0 00:15 ? 00:00:00 /usr/sbin/fb_smp_server
enrico 8835 7053 0 00:15 pts/6 00:00:00 grep firebird
enrico@whiterabbit:~$
Il modo piu` semplice e` che aggiungi il tuo utente al gruppo firebird e
cambi i permessi della tua home, quello piu` pulito e` che metti il database
in una directory appartenente all'utente firebird
Enrico
>>quello piu` pulito e` che metti il database
>> in una directory appartenente all'utente firebird
>>
non capisco, come firebird possa creare dipendenze su directory;
dalle prove fatte sul server o si danno i permessi o neppure in
localhost si riesce ad aprire il db.
se /home/maurizio e' la directory e employee.fdb il database, non
basta che maurizio possa legge e scrivere sulla home, si devono
dare comunque i permessi du employee.fdb.
se conosci una via migliore, ben venga.
Maurizio
> se /home/maurizio e' la directory e employee.fdb il database, non
> basta che maurizio possa legge e scrivere sulla home,
L'utente "maurizio" in questo frangente non c'entra nulla, a meno che tu
non stia esplicitamente lanciando firebird come utente maurizio.
> non capisco, come firebird possa creare dipendenze su directory;
Firebird non crea dipendenze su directory, il problema e` un altro. Linux
(cosi` come Windows) e` un sistema multiutente, dove ogni utenza ha
determinati ambiti di accesso ed in cui una utenza ha poteri globali sul
sistema (root). In questo contesto, ogni processo in esecuzione e` figlio
dell'utente che lo esegue e, di conseguenza, eredita i diritti che l'utente
ha a disposizione. In questo scenario, Firebird si pone come un processo
lanciato dall'utente firebird (default su Debian e derivate) che quindi ha
accesso alle risorse a cui l'utente e` permesso eccedere. Di conseguenza,
se il database e` in /home/maurizio, e tale directory e` accessibile solo
dall'utente maurizio e, in base alla configurazione, puo` essere
accessibile dagli utenti appartenenti al gruppo a cui e` associata la
directory. Questo percio` significa che un processo lanciato dall'utente
firebird non puo` leggere il database /home/maurizio/employee.fdb in
quanto, molto probabilmente, i permessi di /home/maurizio sono impostati
per far accedere solo l'utente e nessun altro (700), con la conseguente
rilevazione del problema da parte tua
> dalle prove fatte sul server o si danno i permessi o neppure in
> localhost si riesce ad aprire il db.
Normale, vedi sopra
> se conosci una via migliore, ben venga.
Si: leggere qualche manuale sulla gestione dei permessi in ambiente Linux
Enrico