Jag kommer att gissa att du försöker fråga:
Om så är fallet är ditt enda inbyggda alternativ att använda behörigheter. Se GRANT
och REVOKE
i PostgreSQL-manualen.
Om du vill ha något mer komplext kan du skriva en ProcessUtility_hook
, men detta kräver att du skriver ett tillägg i C som kompileras och laddas in på servern.
Att skriva en ProcessUtility_hook
är faktiskt inte alltför svårt, men det finns skillnader mellan PostgreSQL 9.2 och 9.3 definitionerna som betyder att du behöver separata tillägg. Här är ett grundläggande exempel:https://github.com/ringerc/scrapcode/ tree/master/postgresql/example_processutility_hook
och här är en ProcessUtility-hook som faktiskt gör något användbart:https://github.com/ringerc/postgres/blob/bdr-reject-unsafe-commands/contrib/bdr/bdr_commandfilter.c
Om du inte har erfarenhet av C-programmering och lite tid, en ProcessUtility_hook
är inte för dig.
Se även:Hur förhindrar man att tabeller tas bort?