Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Eliminar el código fuente de un procedimiento almacenado (https://www.clubdelphi.com/foros/showthread.php?t=92477)

mlara 09-11-2017 16:21:16

Eliminar el código fuente de un procedimiento almacenado
 
Código SQL [-]
UPDATE
  RDB$PROCEDURES P
SET
  P.RDB$PROCEDURE_SOURCE = NULL
WHERE 
  P.RDB$SYSTEM_FLAG = 0;

Al ejecutar la sentecia previa en Firebird 3 se obtiene el mensaje: "... UPDATE operation is not allowed for system table RDB$PROCEDURES."

El usuario que realiza la conexión es SYSDBA, y el componente usado es un TSQL.

Alguien conoce la solución? Gracias.

Casimiro Notevi 09-11-2017 19:12:39

¿Eliminar el código fuente o borrar el procedure?

mlara 09-11-2017 21:07:54

Código SQL [-]
P.RDB$PROCEDURE_SOURCE = NULL

Eliminar el código fuente. En Firebird 3 no funciona como en Firebird 2.5 y se obtiene el mensaje "... UPDATE operation is not allowed for system table RDB$PROCEDURES." Se menciona como una mejora de seguridad en:

http://tracker.firebirdsql.org/browse/CORE-4507

Dmitry Yemanov nos dice (en el 2014):

"The ability to explicitly set the source code to NULL is restored. All other kinds of direct modifications are still prohibited. Later (v4?) it will be replaced with a proper solution, be it special permissions or new DDL command or whatever else."

Sin embargo explícitamente no se encuentra la forma. En mi caso la conexión se realiza con el usuario SYSDBA.

ecfisa 09-11-2017 21:14:42

Hola.

No he probado Firebird 3 y no se si le será aplicable, pero revisa este artículo: How to protect my metadata from users?

Y también creo importante leer las contras mencionadas bajo el título Deleting stored procedure and trigger source code al final de este artículo.

Saludos :)

mlara 09-11-2017 22:11:54

Lo siento ecfisa... el primer enlace funciona para versiones previas a la 3.0, y podría decirse lo mismo del segundo que toca temas más allá de este requerimiento básico.

Cómo borrar el código fuente de disparadores, procedimientos almacenados y vistas en Firebird 3.0?

mamcx 09-11-2017 22:36:00

No entiendo. Cual es el chiste de hacer esto?

ecfisa 09-11-2017 22:45:35

Hola.

Aca encontré un enlace comentando el problema: Unable delete procedure source on Firebird 3.0 Alpha 2.0.

Al parecer es necesario crear una instrucción DDL por separado para lograrlo (aunque no explica como). También mencionan la opción de que el texto sea solo visible para el propietario o sysdba... Ojalá te sirva de ayuda.

Saludos :)

mlara 09-11-2017 23:01:35

Cita:

Empezado por ecfisa (Mensaje 522391)
(aunque no explica cómo)

Gracias... pero ese es el detalle, cómo? A qué se refiere exactamente Yemanov? Y bueno, se trata de un post del 2014 y hace referencia a la versión Alpha 2.

mlara 09-11-2017 23:37:12

Cita:

Empezado por mamcx (Mensaje 522389)
No entiendo. Cual es el chiste de hacer esto?

Ningún chiste... no se trata de una aplicación que se instale en ambientes corporativos con servidores, infraestructuras decentes, administradores de red... etc. Digamos que el sistema es vulnerable y no, por lo pronto no se trata de solucionarlo de otro modo.

mlara 09-11-2017 23:39:38

... sin embargo no quisiera desviar el tema, así que de nuevo la consulta:

Cómo borrar el código fuente de disparadores, procedimientos almacenados y vistas en Firebird 3.0?

... que no funciona como en Firebird 2.5

Imposible que alguien no lo haya hecho ya.

mlara 10-11-2017 00:25:43

Esto tiene sentido... 4544-.

Gracias.


La franja horaria es GMT +2. Ahora son las 22:30:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi