Roller, Postgres
Skapa roller i Postgres
En roll i Postgres kan äga sina egna databasobjekt och ha databasprivilegier. Man kan se en roll som en användare, en grupp eller båda beroende på hur det används. För att kunna skapa en roll måste man ha privilegiet CREATEROLE eller vara en superuser.
Roller definieras på klusternivå och gäller för alla databaser i klustret.
Kommandot för att skapa en roll är
CREATE ROLE name [ [ WITH ] option [ ... ] ]
Name är namnet på rollen. Option förklaras här
SUPERUSER / NOSUPERUSER
En superuser står över restriktioner i databasen. Använd enbart när det verkligen behövs. För att tilldela en superuserroll måste man själv vara superuser. Standard är NOSUPERUSER.
CREATEDB / NOCREATEDB
Avgör om en roll kan skapa en databas. Standard är NOCREATEDB.
CREATEROLE / NOCREATEROLE
Bestämmer om en roll kan skapa, ändra, ta bort, kommentera och ändra "security label" för andra roller. Standard är NOCREATEROLE.
INHERIT / NOINHERIT
Detta påverkar "arv" när en roll läggs till som en medlem av en annan roll. Standard är INHEIT.
LOGIN / NOLOGIN
Styr ifall en roll har tillåtelse att logga in eller ej. En roll med detta attribut kan betraktas som en användare. Utan detta attribut kan en sådan roll vara lämpligt för att hantera databasrättigheter. Standard är NOLOGIN utom när CREATE ROLE används med sin alternativa stavning CREATE USER.
REPLICATION / NOREPLICATION
Denna behövs för att en roll ska vara en "replication role" och kunna ansluta till en server i replication mode. och för att kunna skapa eller droppa replikering. Detta är ett högt privilegie som bara ska användas för roller som används för replikering. Standard är NOREPLICATION.
BYPASSRLS / NOBYPASSRLS
Avgör om en roll kan gå förbi varje lågnivå säkerhetspolicy (RLS). Standard är NOBYPASSRLS. Notera att pg_dump sätter row_security till OFF som standard för att säkerställa att allt innehåll dumpas ut. Om användaren som kör pg_dump inte har korrekta rättigheter kommer ett felmeddelande att returneras. Superusers och tabellägaren går alltid förbi RLS i samband med pg_dump.
CONNECTION LIMIT connlimit
Om en roll kan logga in, specificerar detta hur många samtidiga anslutningar denna roll kan ha. -1 (standard) betyder att det inte finns någon begränsning.