Na splošno velja varnostno pravilo da ni primerno opravljati vnos GIS podatkov v podatkovno bazo PostGIS database kot uporabnik (in z vlogo) postgres, ki bi morala biti uporabljen samo za administrativno delo.
Zato bomo ustvarili novo vlogo in uporabnika GIS za upravljanje s podatki v bazi podatkov PostGIS. Lahko celo ustvarite več uporabnikov z različnimi dovoljenji (SELECT, INSERT, UPDATE, DELETE na različnih tabelah), tako da ustvarite bolj varno okolje, vse je odvisno od vaših potreb pri uporabi GIS-a.
Povežemo se na postgres (kot uporabnik postgres ): psql
in vnesemo v ukazno vrstico naslednji ukaz da ustvarimo vlogo skupine ki jo bomo imenovali gisgroup (lahko izberete manj dovoljenj če to rabite iz varnostnih razlogov):
CREATE ROLE gisgroup NOSUPERUSER NOINHERIT CREATEDB NOCREATEROLE;
natipkate še tole zato da ustvarite vlogo za login, imenovali jo bomo gis (lahko izberete katerokoli ime in geslo):
CREATE ROLE gis LOGIN PASSWORD 'mojegeslo' NOINHERIT;
vključimo sedaj uporabnika gis v skupino gisgroup :
GRANT gisgroup TO gis;
DODELJEVANJE DOVOLJENJ:
Dodeliti moramo dovoljenja za tabele našega postgistemplate (lastnik tabel geometry_columns in spatial_ref_sys bo postal uporabnik gis):
najprej se odklopimo iz prejšnje povezave (vtipkamo \q), in se povežemo na bazo podatkov postgistemplate kot uporabnik postgres:
psql -d postgistemplate
dodelimo dovoljenja:
ALTER TABLE geometry_columns OWNER TO gis;
ALTER TABLE spatial_ref_sys OWNER TO gis;
Ustvarimo nov schema za naše podatke GIS (bi ne smeli ustvariti podatkov GIS v public schema):
CREATE SCHEMA gis_schema AUTHORIZATION gis;
odklopimo se od povezave (\q)
Sedaj lahko ustvarimo bazo podatkov kamor bomo naložili podatke (imenovali jo bomo gisdb), z uporabo ukaza createdb, iz modela postgistemplate ki smo ga pravkar ustvarili:
kot uporabnik postgres vnesemo ukaz
$ createdb -T postgistemplate -O gis gisdb
Ni komentarjev:
Objavite komentar