sql >> Base de Datos >  >> RDS >> PostgreSQL

Impedir que se elimine la tabla si no se cumplen las condiciones

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?