Ich gehe davon aus, dass Sie versuchen zu fragen:
In diesem Fall besteht Ihre einzige integrierte Option darin, Berechtigungen zu verwenden. Siehe GRANT
und REVOKE
im PostgreSQL-Handbuch.
Wenn Sie etwas Komplexeres wollen, können Sie einen ProcessUtility_hook
schreiben , aber dazu müssen Sie eine Erweiterung in C schreiben, die kompiliert und auf den Server geladen wird.
Schreiben eines ProcessUtility_hook
ist eigentlich nicht allzu schwierig, aber es gibt Unterschiede zwischen den PostgreSQL 9.2- und 9.3-Definitionen, die bedeuten, dass Sie separate Erweiterungen benötigen. Hier ist ein einfaches Beispiel:https://github.com/ringerc/scrapcode/ tree/master/postgresql/example_processutility_hook
und hier ist ein ProcessUtility-Hook, der tatsächlich etwas Nützliches tut:https://github.com/ringerc/postgres/blob/bdr-reject-unsafe-commands/contrib/bdr/bdr_commandfilter.c
Wenn Sie keine C-Programmiererfahrung und etwas Zeit haben, ein ProcessUtility_hook
ist nichts für dich.
Siehe auch:Wie kann verhindert werden, dass eine Tabelle gelöscht wird?