Po instalacji FireBird’a (opisane w artykule https://micek1968.pl/?p=4338) wraz z silnikiem bazy danych zostało zainstalowane oprogramowanie „FireBird ISQL Tool”.
Jest to proste okno poleceń za pomocą którego możemy pracować na naszych tabelach w bazach FireBird.
Możemy uruchamiać ISQL-a z linii poleceń. Program znajduje się w folderze z binarkami bazy danych (C:\Program Files (x86)\Firebird\Firebird_4_0)
Uruchamiamy CMD (jako ADMINISTRATOR !!!) i uruchamiamy program ISQL.EXE
Prościej jest jednak uruchomić to z menu startowego.
Tu także uruchamiamy ISQL w trybie administratora. Uruchomienie w trybie zwykłego usera spowoduje, że nie będziemy mieli dostępu do baz systemowych (np. listy userów baz).
Zgodnie z informację podaną w oknie najpierw musimy podłączyć się do bazy lub ją stworzyć (Use CONNECT or CREATE DATABASE to specify a database)
Jako że nie mamy jeszcze żadnej bazy w pierwszej kolejności ją utworzymy.
UTWORZENIE BAZY DANYCH
SQL> CREATE DATABASE "C:\FireBirdDB\BazaDanych.FDB"; Server version: WI-V4.0.1.2692 Firebird 4.0
W folderze utworzył się plik FDB.
Po utworzeniu bazy danych, wylogowujemy się za pomocą polecenia QUIT.
PODŁĄCZENIE DO BAZY DANYCH
Aby podłączyć się do bazy danych należałoby wydać polecenie:
SQL> CONNECT "C:\FireBirdDB\BazaDanych.FDB"; Server version: WI-V4.0.1.2692 Firebird 4.0 Database: "C:\FireBirdDB\BazaDanych.FDB", User: MICEK1968
Możemy sprawdzić listę użytkowników:
SQL> SHOW USERS; Users in the database 1 #MICEK1968
Przy aktualnie podłączonym użytkowniku znajduje się znak "#".
Informacje o naszej aktualnej bazie danych (do której jesteśmy podłączeni)
SQL> SHOW DATABASE; Database: C:\FireBirdDB\BazaDanych.FDB Owner: MICEK1968 PAGE_SIZE 8192 Number of DB pages allocated = 240 Number of DB pages used = 224 Number of DB pages free = 16 Sweep interval = 20000 Forced Writes are ON Transaction - oldest = 6 Transaction - oldest active = 7 Transaction - oldest snapshot = 7 Transaction - Next = 12 ODS = 13.0 Database not encrypted Embedded connection Creation date: Feb 2, 2022 18:25:07 GMT Default Character set: NONE
To samo uzyskamy poprzez "SHOW DB".
UTWORZENIE TABELI i WPROWADZENIE DANYCH
Jeśli już podłączyliśmy się do bazy, wyświetlimy listę tabel
SQL> SHOW TABLE; There are no tables in this database
W bazie nie ma żadnych tabel więc ją utworzymy.
SQL> CREATE TABLE ADRESY CON> ( CON> nazwisko varchar(40), CON> adres varchar(50), CON> telefon varchar(9) CON> ); SQL> COMMIT;
Można też stworzyć plik tekstowy zawierający treść skryptu a następnie wykonać polecenie
SQL> IN c:\FireBirdDB\create_table_adresy.sql; SQL>
Ponownie sprawdzamy listę tabel
SQL> SHOW TABLE; ADRESY
Wyświetlamy dane w tabeli
SQL> SELECT * FROM ADRESY; SQL>
Nic nie zwróciło gdyż tabela jest pusta. Wprowadzimy do niej jeden wiersz.
SQL> INSERT INTO ADRESY CON> (Nazwisko, Adres, Telefon) CON> VALUES ('Nowak Jan','Szczecin','997997997'); SQL>
Ponowne wyświetlenie danych zwraca dane
SQL> SELECT * FROM ADRESY; NAZWISKO ADRES TELEFON ========================= =============== ========= Nowak Jan Szczecin 997997997
Możemy do każdej tabeli dodać komentarz w którym opiszemy co baza zawiera
SQL> COMMENT ON TABLE adresy IS 'Ta tabela zawiera adresy i telefony.';
Zapisany komentarz wyświetlamy
SQL> show comment; COMMENT ON TABLE ADRESY IS Ta tabela zawiera adresy i telefony.;
USUNIĘCIE TABELI
Po zakończeniu prac możemy (ale na razie tego nie róbmy) usunąć naszą tabelę Adresy
SQL> DROP TABLE adresy; SQL>
USUNIĘCIE BAZY DANYCH
Usuwanie bazy danych jest bardzo proste (Również proszę na razie tego nie wykonywać). Należy jednak uważać, bo FireBird nie prosi o potwierdzenie tylko bezpowrotnie usuwa z dysku bazę do której aktualnie jesteśmy podłączeni.
SQL> DROP DATABASE; SQL>
Dlatego zalecane jest logować się do bazy zwykłym użytkownikiem o odpowiednich uprawnieniach 🙂
LOGOWANIE DO BAZY JAKO SYSADMIN
Jeśli chcielibyśmy utworzyć bazę jako SYSADMIN i następnie przyznawać użytkownikom odpowiednie uprawnienia (jako administrator) należało by to zrobić poleceniem:
SQL> CREATE DATABASE "C:\FireBirdDB\BazaDanych.FDB" USER "SYSDBA" PASSWORD "masterkey"; Server version: WI-V4.0.1.2692 Firebird 4.0
Aby zalogować się do bazy jako SYSADMIN którego hasło ustawialiśmy podczas instalacji FireBirda nalezy wykonać polecenie:
SQL> CONNECT "C:\FireBirdDB\BazaDanych.FDB" user 'SYSDBA' password 'masterkey'; Commit current transaction (y/n)?y Committing. Server version: WI-V4.0.1.2692 Firebird 4.0 Database: "C:\FireBirdDB\BazaDanych.FDB", User: SYSDBA
Oczywiście jako administrator mamy dostęp do wszystkich obiektów bazy.
SQL> select * from adresy; NAZWISKO ADRES TELEFON ======================================== ================================================== ========= Nowak Jan Szczecin 997997997
Natomiast logując się na konto innego usera niż MICEK1968 (właściciel bazy) i SYSADMIN otrzymamy błąd dostępu:
SQL> CONNECT "C:\FireBirdDB\BazaDanych.FDB" user 'user123'; Commit current transaction (y/n)?y Committing. Server version: WI-V4.0.1.2692 Firebird 4.0 Database: "C:\FireBirdDB\BazaDanych.FDB", User: USER123 SQL> select * from adresy; Statement failed, SQLSTATE = 28000 no permission for SELECT access to TABLE ADRESY -Effective user is USER123
i przełączamy się na MICEK1968
SQL> CONNECT "C:\FireBirdDB\BazaDanych.FDB" user 'micek1968'; Commit current transaction (y/n)?y Committing. Server version: WI-V4.0.1.2692 Firebird 4.0 Database: "C:\FireBirdDB\BazaDanych.FDB", User: MICEK1968 SQL> select * from adresy; NAZWISKO ADRES TELEFON ======================================== ================================================== ========= Nowak Jan Szczecin 997997997