Roller, Postgres: Difference between revisions

From Linuxwiki
Jump to navigation Jump to search
Linuxwiki>Wikiadmin
No edit summary
Linuxwiki>Wikiadmin
No edit summary
Line 30: Line 30:
==== BYPASSRLS / NOBYPASSRLS ====
==== 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.
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.

Revision as of 13:53, 31 October 2024

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.