2017-12-21 4 views
1

fallen und erstellen Während einige DDL auf einer Datenbank ausgeführt wird, bemerkte ich die folgendekann nicht Trigger ersetzen, kann aber

  • Meine User-ID scheint nicht die Erlaubnis zu haben, einen Auslöser zu ersetzen:

    CREATE OR REPLACE TRIGGER MY_TRIGGER 
    <trigger definition follows> 
    
    DB21034E The command was processed as an SQL statement because it was not a 
    valid Command Line Processor command. During SQL processing it returned: 
    SQL0551N The statement failed because the authorization ID does not have the 
    required authorization or privilege to perform the operation. Authorization 
    ID: "DB2INST1". Operation: "REPLACE TRIGGER". Object: 
    "MYSCHEMA.MY_TRIGGER". LINE NUMBER=1. SQLSTATE=42501 
    
  • Es ist jedoch in der Lage zu DROP und CREATE

    DROP TRIGGER MY_TRIGGER 
    DB20000I The SQL command completed successfully. 
    
    CREATE TRIGGER MY_TRIGGER 
    <trigger definition follows> 
    DB20000I The SQL command completed successfully. 
    

Also meine Frage ist:

  • Was ist die Erlaubnis, die erforderlich ist, zu ermöglichen, für die arbeiten ERSETZEN?
  • Warum würde dieses Verhalten passieren? Es scheint, dass ich trotz der verweigerten Erlaubnis tatsächlich die Operation ausführen kann, die sie verweigert. Warum ist das der Fall?

Antwort

2

Vom documentation „einen vorhandenen Trigger zu ersetzen, die Berechtigungs-ID der Anweisung muss der Besitzer des vorhandenen Trigger (SQLSTATE 42501) sein.“

Wenn Ihr Authid den Auslöser erstellt, kann Ihr Authid es ersetzen.

Von Ihrer Fehlermeldung scheint es, dass das Konto, das den Auslöser erstellt hat, sich von dem Konto unterscheidet, das versucht, es zu ersetzen.

+0

Ohh .. können Sie einen Link zu dem Dokument hinzufügen, ich konnte es irgendwie nicht finden – BX21

Verwandte Themen