I går så installerade jag PostGIS för användning i QGIS och nu tänkte jag mest för egen skull dokumentera några erfarenheter till.
När man lägger upp användare i Postgresql (roller) så kan man använda dessa för att skapa nya data i QGIS. Om andra skall kunna läsa eller redigera dessa så måste man dock tilldela dem dessa rättigheter eftersom den användare som skapat tabellen blir ensam ägare av den.
I OpenGeo Explorer så kan man markera databasen och välja ”Run SQL…”
Om man skapat en tabell kallad ”data” och vill att rollen ”users” skall ha alla rättigheter i detta lager så skriver man:
GRANT ALL PRIVILEGES ON data TO users;
Om man har en funktion för att räkna upp id automatiskt (default när man skapar ny tabell) så måste man även tilldela rättigheter till denna ”sekvens”:
GRANT ALL ON SEQUENCE data_id_seq TO users;
Vad sekvensen heter kan man kontrollera i OpenGeo Explorer genom att klicka på tabellen. Som standard döps den till ”tabellnamn_fältnamn_seq”.
Nu bör alla i gruppen ”users” kunna läsa och redigera data i lagret.
Vill man ge andra rättigheter eller begränsa det till vissa användare så går det också att göra…
GRANT SELECT ... rätt att läsa GRANT UPDATE ... rätt att ändra GRANT INSERT ... rätt att lägga till
Det går även att styra om en specifik användare endast skall kunna läsa allt (eller vissa kolumner) men bara kunna uppdatera data i en specifik kolumn genom att lägga till kolumnnamnet inom parentes efter kommandot.
GRANT SELECT(kolumn1, kolumn3, kolumn6), UPDATE(kolumn3) ON data TO some_user;
Glöm nu slutligen inte heller att om man sparar QGIS projektet så sparas inskrivna lösenord också… i klartext!