Adathozzáférés¶
Az OpenBioMaps többféle lehetőséget biztosít a projektadatok lekérdezésére, megtekintésére és letöltésére. Az ezeken a felületeken elérhető rekordok és mezők köre a projekt hozzáférési szabályaitól és az aktuális felhasználó jogosultságaitól függ.
Ez az oldal áttekintést nyújt az elérhető adatlekérési módszerekről és a projektadatokhoz való hozzáférés szabályozására szolgáló mechanizmusokról.
Adatok lekérése¶
Az adatok lekérhetők a webalkalmazáson keresztül, letölthetők a támogatott fájlformátumokban, vagy külső alkalmazásokból is elérhetők.
Fájlok letöltése¶
A lekérdezési eredmények különféle formátumokban tölthetők le. A projektmodul beállításaitól függően az elérhető formátumok a következők lehetnek:
szöveges és strukturált adatok: CSV és JSON;
táblázatok: ODS, XLS és XLSX;
szöveges attribútumokkal rendelkező térbeli adatok: ESRI Shapefile, KML, GPX és SQLite.
Az ESRI Shapefile-export több kapcsolódó fájlból is állhat, beleértve a
.shp, .dbf, .cpg, .prj és .shx fájlokat.
A felhasználók egyenként tölthetik le az adatrekordokhoz kapcsolódó képeket, míg a projektadminisztrátorok az adminisztrációs felületen keresztül tömegesen is letölthetik azokat.
Az adminisztrátorok az adatbázistáblák kezelési oldalán CSV-formátumban exportálhatják az adattáblák szöveges mezőit.
Az adatexport az Export modul használatával egyedi engedélykérelmekhez is köthető.
Webes lekérdezések¶
A webalkalmazás eszközöket biztosít a hozzáférhető rekordok szűréséhez és lekéréséhez. A projekt konfigurációjától függően a felhasználók a következőket hajthatják végre:
attribútumalapú lekérdezések szöveges, lista-, dátum- és más konfigurált mezők használatával;
térbeli lekérdezések a térképen kijelölt vagy megrajzolt geometriák használatával; vagy
kombinált térbeli és attribútumalapú lekérdezések.
A lekérdezési felületek áttekintését lásd: Felhasználói felületek.
Külső alkalmazások¶
A projektadatok külső alkalmazásokból is elérhetők:
az OpenBioMaps API parancsfájlokból, az OpenBioMaps R-csomagból és más API-kliensekből használható;
egy engedélyezett SQL-kapcsolat közvetlen adatbázis-hozzáférést biztosíthat olyan alkalmazások számára, mint a QGIS; valamint
a támogatott kliensalkalmazások saját lekérdezési és letöltési felületeket biztosíthatnak.
A külső alkalmazásokból történő hozzáférésre a projekt hozzáférési szabályai, valamint a hitelesített felhasználóhoz vagy kapcsolathoz rendelt jogosultságok vonatkoznak.
További információért lásd:
OpenBioMaps API; valamint
Az adatokhoz való hozzáférés szabályozása¶
Az OpenBioMaps több szinten képes szabályozni a hozzáférést:
a projektszintű beállítások határozzák meg az alapértelmezett hozzáférési és módosítási szabályzatot;
a sorszintű szabályok az egyes rekordokhoz való hozzáférést szabályozzák; valamint
az oszlopszintű szabályok határozzák meg, hogy mely mezők tekinthetők meg vagy tölthetők le.
A tényleges jogosultságok ezért több beállítástól is függhetnek. A projektadminisztrátoroknak különböző csoportokhoz tartozó felhasználókkal, valamint hitelesítés nélkül is tesztelniük kell az így kialakuló hozzáférést, ha a nyilvános hozzáférés engedélyezett.
Projektszintű hozzáférés¶
Az alapértelmezett projektszintű hozzáférési beállításokat a
local_vars.php.inc konfigurációs fájl határozza meg:
define('ACC_LEVEL', 'group'); // Can be set to 'public' or 'login'.
define('MOD_LEVEL', 'group');
Az ACC_LEVEL azt az alapértelmezett szintet határozza meg, amelyen a
projektadatok elérhetők. A dokumentált értékek a következők:
publicAz adatok nyilvánosan hozzáférhetők, az esetleges részletesebb hozzáférési szabályok figyelembevételével.
loginAz adatok a hitelesített felhasználók számára hozzáférhetők, az esetleges részletesebb hozzáférési szabályok figyelembevételével.
groupA hozzáférést a projektcsoportok és további hozzáférési szabályok szabályozzák.
A MOD_LEVEL azt az alapértelmezett szintet határozza meg, amelyen az
adatok módosíthatók. Hasonló hozzáférési modellt használ.
Ha a MOD_LEVEL értéke public, az adatok a felhasználó
bejelentkezése nélkül is módosíthatók. Ez a beállítás kizárólag akkor
használható, ha kifejezetten szükség van hitelesítés nélküli módosításra,
és annak biztonsági következményeit mérlegelték.
Sorszintű hozzáférés¶
Ha az ACC_LEVEL vagy a MOD_LEVEL értéke group, az egyes
rekordokhoz való hozzáférés egy projektspecifikus *_rules táblával
szabályozható. A * a projekt által használt nevet vagy előtagot jelöli.
Egy szabálytábla egy adattáblához kapcsolódik. Az adatrekordot az
adattáblában található obm_id érték és a szabálytáblában található
row_id érték kapcsolja össze a megfelelő szabállyal.
Csoportszintű hozzáférést használó projektben azok a rekordok, amelyekhez nem tartozik bejegyzés a szabálytáblában, kizárólag a projektgazdák számára érhetők el.
A szabálytábla működése a projektadminisztrációs felületen, a Project administration > Functions > Create access rules menüpontban konfigurálható. Ezen a felületen létrehozható vagy frissíthető a triggerfüggvény, valamint engedélyezhető vagy letiltható annak működése.
Ha engedélyezve van, a trigger a rekordok létrehozása, módosítása vagy törlése után karbantartja a szabálytáblát.
Olvasási és írási csoportok hozzárendelése¶
Az egyes rekordok olvasási és írási jogosultságai a szabálytábla csoportokhoz kapcsolódó mezőivel rendelhetők hozzá.
Ezeket az értékeket a szabálytábla triggere automatikusan is kitöltheti. A
hozzárendelt csoportok származhatnak a rekord létrehozásához használt
feltöltési űrlap hozzáférési beállításaiból. A befejezett feltöltésekre,
valamint azok konfigurált tulajdonosi és csoportértékeire vonatkozó
információkat a system.uploadings tábla tárolja.
Szabálytábla újragenerálása¶
A szabálytábla manuálisan is újragenerálható. A következő példákban az
abc az adattábla, az abc_rules pedig annak szabálytáblája.
A következő utasítások olvasási vagy írási csoportok hozzárendelése nélkül hozzák létre újból a szabályokat:
DELETE FROM abc_rules
WHERE data_table = 'abc';
INSERT INTO abc_rules (row_id, sensitivity, data_table)
SELECT obm_id, 'sensitive', 'abc'
FROM abc;
A következő utasítások a system.uploadings tábla megfelelő
bejegyzéséből származtatják a csoport- és tulajdonosértékeket:
DELETE FROM abc_rules
WHERE data_table = 'abc';
INSERT INTO abc_rules (row_id, sensitivity, data_table, read, write)
SELECT a.obm_id, 'sensitive', 'abc', s."group", s.owner
FROM abc AS a
LEFT JOIN system.uploadings AS s
ON s.id = a.obm_uploading_id;
Ezeket a példákat a projekt tényleges táblaneveihez, sémájához, oszloptípusaihoz és hozzáférési szabályzatához kell igazítani. Az adminisztrátoroknak éles adatbázisban történő használat előtt biztonsági másolatot kell készíteniük a meglévő szabálytábláról, és ellenőrizniük kell a létrehozott jogosultságokat.
Érzékenységi beállítások¶
A szabálytábla sensitivity mezője befolyásolja egy rekord nyilvános
elérhetőségét a csoportszintű hozzáférést használó projektekben.
A dokumentált értékek a következők:
sensitiveA rekordot kizárólag a vonatkozó hozzáférési szabályokban megadott csoportok tagjai olvashatják vagy módosíthatják.
restrictedEz az érték a jelenlegi dokumentáció szerint ugyanazt jelenti, mint a
sensitive.no-geomA rekord nyilvánosan hozzáférhető lehet, de a geometriája nyilvánosan nem jelenik meg.
only-ownerA rekordhoz kizárólag a projekt tulajdonosa férhet hozzá.
Oszlopszintű hozzáférés¶
Az egyes adatbázismezőkhöz való hozzáférés tovább szabályozható az
allowed_columns modul használatával. Ez a modul határozza meg, hogy a
nyilvános felhasználók vagy a megadott felhasználói csoportok mely
oszlopokat tekinthetik meg vagy tölthetik le.
Olyan projektben, amelyben az ACC_LEVEL értéke group, a modul
segítségével kiválasztott mezők akkor is hozzáférhetővé tehetők, ha a
projekt egyébként nem biztosít általános hozzáférést minden mezőhöz. A
sorszintű szabályok alapján hozzáférhető rekordok látható mezőit is
korlátozhatja.
Ez lehetővé teszi például annak közlését a felhasználókkal, hogy egy rekord létezik, miközben csak annak jóváhagyott mezői válnak hozzáférhetővé.
A hozzáférési szabályok kölcsönhatása¶
Ha kizárólag csoportszintű projekthozzáférés van beállítva, és ennél részletesebb szabályok nem biztosítanak hozzáférést, a projektadatok kizárólag az ilyen korlátozások megkerülésére jogosult adminisztratív szerepkör számára érhetők el.
A szabálytábla sorszintű szabályozást biztosít, így különböző rekordok
különböző csoportok számára tehetők hozzáférhetővé. Az
allowed_columns modul oszlopszintű szabályozást biztosít, így egy
hozzáférhető rekordnak csak a kiválasztott mezői tekinthetők meg vagy
tölthetők le.
Ha több szabály is alkalmazandó, a tényleges jogosultságokat a projekt-, sor- és oszlopszintű korlátozások együttesen határozzák meg. Az adminisztrátoroknak nem szabad abból kiindulniuk, hogy egy általánosabb szabály automatikusan felülír egy részletesebb korlátozást.