Narzędzia użytkownika

Narzędzia witryny


fedora:aplikacje:libreoffice:base_pgsql

To jest stara wersja strony!


LibreOffice z silnikiem bazy PostgreSQL

Założenia

Konfiguracja umożliwiająca użytkowanie bez konieczności instalacji i bez uprawnień administratora:

  • PostgreSQL - Zastosowanie tego silnika zdejmuje wszelkie ograniczenia bazy HSQLDB. Ponadto bezproblemowa instalacja i uruchomienie bez instalacji. W pełni profesjonalny silnik bazy danych.
  • DBeaver - Z uwagi na ograniczenia zarządzania bazą z poziomu LibreOffice Base korzystnie jest użyć do tego celu DBeaver. Przewyższa możliwościami również Admin4. Oczywiście nie wymaga instalacji.
  • LibreOffice - Zastosowanie wersji Portable umożliwia użycie w systemie gdzie nie mamy możliwości instalacji oprogramowania.

Opis dotyczy konfiguracji w systemie Windows gdyż najczęściej tam mamy ograniczenia administracyjne.

PostgreSQL

DBeaver

LibreOffice Portable

Konfiguracja i utworzenie bazy

Pobrany plik np. postgresql-17.4-1-windows-x64-binaries.zip rozpakowujemy np. do postaci:

C:\pgsql

W czasie pisania niniejszego dokumentu miałem problem z uruchomieniem wersji postgresql-18.0-2-windows-x64-binaries.zip. Otrzymywałem komunikat:

wykonywanie skryptu ładowania wstępnego ... ok 
wykonywanie inicjacji po ładowaniu wstępnym ... 
proces potomny został zatrzymany przez wyjątek 0xC0000005 
initdb: removing data directory "C:/pgsql_new/pgdata"

dlatego została użyta poprzednia wersja.

Inicjalizacja bazy

C:\pgsql\bin\initdb -D C:\pgsql\pgdata -U postgres -W -E UTF8 -A scram-sha-256

Jak widać pliki danych zostaną umieszczone w katalogu C:\pgsql\data.

Skrypty .vbs uruchamiania i wyłączenia silnika baz

Uruchomienie

start_postgres.vbs
Set WshShell = CreateObject("WScript.Shell")
cmd = """C:\pgsql\bin\pg_ctl.exe"" start -D ""C:\pgsql\pgdata"" -l ""C:\pgsql\pgdata\pgsql.log"""
WshShell.Run cmd, 0, False

Plik możemy podlinkować do Autostart systemu. Otwórz folder autostartu użytkownika przez wpisanie do Eksploratora plików:

%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup

lub możesz to szybko otworzyć:

  • wciśnij Win+R,
  • wpisz:
shell:startup
  • i naciśnij Enter.

Wyłączenie

stop_postgres.vbs
Set WshShell = CreateObject("WScript.Shell")
cmd = """C:\pgsql\bin\pg_ctl.exe"" stop -D ""C:\pgsql\pgdata"" -m fast"
WshShell.Run cmd, 0, False

Po ponownym uruchomieniu systemu silnik bazy danych powinien działać i możemy to sprawdzić w cmd:

C:\pgsql\bin\pg_ctl.exe status -D C:\pgsql\pgdata

Połączenie DBeaver

Za pierwszym razem łączymy się do bazy postgres z zaznaczeniem opcji Show all databases. Bez tego nie utworzymy nowej bazy danych. Oczywiście utworzenie nowego użytkownika, bazy i jej stryktury można zrobić „z palca” z poziomu cmd czy Admin4, ale lepiej od początku przywyknąć do użytkowania DBeaver.

Tworzenie użytkownika dla przyszłej bazy

CREATE ROLE piotr LOGIN PASSWORD 'piotr123';

lub

CREATE USER piotr WITH PASSWORD 'piotr123';

Tworzenie bazy dla uprzednio dodanego użytkownika

CREATE DATABASE mojadb OWNER piotr;

Tworzenie kolejnego użytkownika utworzonej bazy

CREATE USER adam WITH PASSWORD 'adam123';

Nadanie mu uprawnień do połączenia się z bazą

GRANT CONNECT ON DATABASE mojadb TO adam;

Nadanie uprawnień do korzystania ze schematu public

\c mojadb
GRANT USAGE ON SCHEMA public TO adam;

Nadanie uprawnień do odczytu danych

GRANT SELECT ON ALL TABLES IN SCHEMA public TO adam;

Nadanie pełnych uprawnień czyli do odczytu, usuwania, dodawania

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO adam;

Automatyczne uprawnienia dla przyszłych tabel

ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT ALL ON TABLES TO nowyuzytkownik;

Minimalny ciąg dla nowego użytkownika pracującego z LO Base

-- Utwórz użytkownika (z loginem i hasłem)
CREATE USER uzytkownik WITH PASSWORD 'haslo123';
 
-- Daj mu możliwość łączenia się z bazą
GRANT CONNECT ON DATABASE mojabaza TO uzytkownik;
 
-- Nadaj dostęp do schematu public (gdzie są tabele)
GRANT USAGE ON SCHEMA public TO uzytkownik;
 
-- Daj pełne prawa do wszystkich tabel i sekwencji (czyli danych)
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO uzytkownik;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO uzytkownik;
 
-- Ustaw, żeby wszystkie NOWE tabele i sekwencje też automatycznie były dostępne
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT ALL ON TABLES TO uzytkownik;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT ALL ON SEQUENCES TO uzytkownik;

Połączenie LibreOffice Base

  • Połącz z istniejąca bazą danych
  • wybierz PostgreSQL
  • Dalej
  • Nazwa bazy danych: mojadb
  • Serwer: localhost
  • Numer portu: 5432
  • Dalej
  • Nazwa użytkownika: piotr
  • Wymagane hasło: tak
  • Dalej
  • Zakończ
  • Nadaj nazwę pliku
  • Zapisz
fedora/aplikacje/libreoffice/base_pgsql.1762071060.txt.gz · ostatnio zmienione: przez sindap

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki