Rejestr w Base z uprawnieniami użytkownika

Użytkowanie programu bazodanowego
qlimmax
Posty: 1
Rejestracja: pn lip 22, 2019 9:40 am

Rejestr w Base z uprawnieniami użytkownika

Post autor: qlimmax »

Witam,
muszę zrobić rejestr umów, do którego wielu użytkowników będzie następnie miało dostęp, będą mogli dopisywać umowy do swoich działów np. kadry, ale nie będą mogli ich usuwać. Czy można coś takiego zrealizować w Base? Czy lepszy byłby dostęp do bazy w mysql czy też do bazy plikowej umieszczonej na zasobie sieciowym?

Czy jest możliwość, aby np. pracownicy danego wydziału mogli edytować tylko swoje wpisy?
Libre Office 6.2 na Windows 10
Jan_J
Posty: 4583
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Rejestr w Base z uprawnieniami użytkownika

Post autor: Jan_J »

Base domyślnie korzysta z wbudowanego silnika HSQL DB w wersji 1.8; mocno przestarzałego, ale obsługującego role i przywileje.
Patrz http://www.hsqldb.org/doc/1.8/guide/gui ... nt-section

W LibreOffice istnieje też standardowy moduł do budowania osadzonych baz danych pod nadzorem Firebirda. Tam też role i transakcje są możliwe.

Tak że ograniczenia dot. uprawnień są możliwe, ale mogą wymagać budowy schematu bazy za pomocą kodu SQL.

Standard SQL przewiduje GRANT i REVOKE w odniesieniu do encji. tj. obiektów nazwanych, jak tabele, perspektywy. Wymaganie, by `pracownik mógł redagować tylko swoje wpisy` zdaje się odnosić do krotek będących w jednej tabeli. Do tego wg mojej wiedzy standardowy mechanizm uprawnień nie wystarczy; potrzebne byłyby wyzwalacze (triggers). Obie wymienione bazy obsługują wyzwalacze, choć przygotowuje się je w zupełnie inny sposób. Inne możliwość, nie do końca bezpieczna, to kontrola dostępu nie tyle z poziomu samej bazy, co korzystającej z niej aplikacji.

Z punktu widzenia przenośności radziłbym użyć poważnej, zewnętrznej bazy, w możliwie wysokim stopniu opartej na standardach. Np Postgresql, MySQL/MariaDB, Firebird też dość dobrze.
JJ
LO (24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ