FireBird (cz.2) – Pierwsze kroki

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
Ten wpis został opublikowany w kategorii FireBird. Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz