Supongo que estás tratando de preguntar:
Si es así, su única opción integrada es usar permisos. Ver GRANT
y REVOKE
en el manual de PostgreSQL.
Si desea algo más complejo, puede escribir un ProcessUtility_hook
, pero esto requiere que escriba una extensión en C que se compile y cargue en el servidor.
Escribiendo un ProcessUtility_hook
en realidad no es demasiado difícil, pero existen diferencias entre las definiciones de PostgreSQL 9.2 y 9.3 que significan que necesitará extensiones separadas. Aquí hay un ejemplo básico:https://github.com/ringerc/scrapcode/ árbol/maestro/postgresql/example_processutility_hook
y aquí hay un enlace ProcessUtility que realmente hace algo útil:https://github.com/ringerc/postgres/blob/bdr-reject-unsafe-commands/contrib/bdr/bdr_commandfilter.c
Si no tiene experiencia en programación C y algo de tiempo, un ProcessUtility_hook
no es para ti.
Consulte también:¿Cómo evitar que se elimine la tabla?