nedelja, september 26, 2010

Nastavitev vlog in uporabnika v Postgis-u

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: