sql >> Databasteknik >  >> RDS >> PostgreSQL

Förhindra fallbord om villkoren inte är uppfyllda

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?




  1. Returnera datarader från ett pl/sql-block

  2. Sökfråga för flera taggar

  3. MySQL-ordning efter två värden

  4. Säkert sätt att lagra krypteringsnycklar - PHP