Jeg vil gætte på, at du prøver at spørge:
Hvis det er tilfældet, er din eneste indbyggede mulighed at bruge tilladelser. Se GRANT
og REVOKE
i PostgreSQL-manualen.
Hvis du vil have noget mere komplekst, kan du skrive en ProcessUtility_hook
, men dette kræver, at du skriver en udvidelse i C, der er kompileret og indlæst på serveren.
At skrive en ProcessUtility_hook
er faktisk ikke for svært, men der er forskelle mellem PostgreSQL 9.2 og 9.3 definitionerne, der betyder, at du skal bruge separate udvidelser. Her er et grundlæggende eksempel:https://github.com/ringerc/scrapcode/ tree/master/postgresql/example_processutility_hook
og her er en ProcessUtility-hook, der faktisk gør noget nyttigt:https://github.com/ringerc/postgres/blob/bdr-reject-unsafe-commands/contrib/bdr/bdr_commandfilter.c
Hvis du ikke har C-programmeringserfaring og noget tid, en ProcessUtility_hook
er ikke noget for dig.
Se også:Hvordan forhindrer man, at tabellen slettes?