Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Gespeicherte Prozeduren und Trigger » Prozeduren, Trigger und Batches verwenden

 

Inhalt von Prozeduren, Funktionen, Triggern und Ansichten verbergen

In manchen Fällen kann es sein, dass Sie eine Anwendung und eine Datenbank weitergeben möchten, ohne dabei die Logik innerhalb der Prozeduren, Funktionen, Triggern und Ansichten preiszugeben. Als zusätzliche Sicherheitsmaßnahme können Sie den Inhalt dieser Objekte mit der SET HIDDEN-Klausel der ALTER PROCEDURE-, ALTER FUNCTION-, ALTER TRIGGER- und ALTER VIEW-Anweisungen verbergen.

Die SET HIDDEN-Klausel verschleiert den Inhalt der zugeordneten Objekte und macht sie unlesbar, wobei die Nutzbarkeit der Objekte nach wie vor möglich ist. Des weiteren können Sie die Objekte in eine andere Datenbank entladen und neu laden.

Die Änderung kann nicht rückgängig gemacht werden und löscht den Originaltext des Objekts. Deshalb ist eine Sicherung des Originaltextes dieses Objekts außerhalb der Datenbank notwendig.

Bei der Fehlersuche unter Verwendung des Debuggers wird weder die Definition der Prozedur angezeigt, noch zeigen die Prozedurprofilinformationen den Quelltext an.

Eine Ausführung der oben genannten Anweisungen auf einem bereits verschlüsselten Objekt hat keine Auswirkungen.

Um Text für alle Objekte eines bestimmten Typs zu verbergen, können Sie eine der folgenden Schleife ähnliche Schleife verwenden:

BEGIN
    FOR hide_lp as hide_cr cursor FOR
        SELECT proc_name, user_name
        FROM SYS.SYSPROCEDURE p, SYS.SYSUSER u
        WHERE p.creator = u.user_id
        AND p.creator NOT IN (0,1,3)
    DO
        MESSAGE 'altering ' || proc_name;
        EXECUTE IMMEDIATE 'ALTER PROCEDURE "' ||
            user_name || '"."' || proc_name
            || '" SET HIDDEN'
    END FOR
END;
Siehe auch