Saya akan menebak bahwa Anda mencoba bertanya:
Jika demikian, satu-satunya opsi bawaan Anda adalah menggunakan izin. Lihat GRANT
dan REVOKE
di manual PostgreSQL.
Jika Anda menginginkan sesuatu yang lebih kompleks, Anda dapat menulis ProcessUtility_hook
, tetapi ini mengharuskan Anda menulis ekstensi dalam C yang dikompilasi dan dimuat ke server.
Menulis ProcessUtility_hook
sebenarnya tidak terlalu sulit, tetapi ada perbedaan antara definisi PostgreSQL 9.2 dan 9.3 yang berarti Anda memerlukan ekstensi terpisah. Berikut contoh dasarnya:https://github.com/ringerc/scrapcode/ tree/master/postgresql/example_processutility_hook
dan inilah pengait ProcessUtility yang benar-benar melakukan sesuatu yang berguna:https://github.com/ringerc/postgres/blob/bdr-reject-unsafe-commands/contrib/bdr/bdr_commandfilter.c
Jika Anda tidak memiliki pengalaman pemrograman C dan beberapa waktu, ProcessUtility_hook
bukan untukmu.
Lihat juga:Bagaimana cara mencegah agar tabel tidak dijatuhkan?