Announcement

Collapse
No announcement yet.

Trigger erzeugen in master-Datenbank

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Trigger erzeugen in master-Datenbank

    Hallo,<br>
    ich bekomme nachfolgende Fehlermeldung&nbsp;</p>
    <blockquote>
    <p><i>Server: Nachr.-Nr. 229, Schweregrad 14, Status 5, Prozedur </i><i>sysprocessesTriggerInsert</i><i>, Zeile
    6<br>
    Die CREATE TRIGGER-Berechtigung wurde für das sysprocesses-Objekt,
    master-Datenbank, Besitzer 'dbo' verweigert.</i></p>
    </blockquote>
    <p>wenn ich den Trigger&nbsp;</p>
    <blockquote>
    <p><i>CREATE TRIGGER sysprocessesTriggerInsert<br>
    ON sysprocesses<br>
    FOR INSERT<br>
    AS<br>
    -- kann auch was anderes stehen<br>
    select * from sysprocesses<br>
    -- kann auch was anderes stehen</i></p>
    </blockquote>
    <p>in einer System-Tabelle bei &quot;master&quot; erzeugen möchte.<br>
    Fehlen mir noch irgendwelche Administrationsrechte ? (bin als <i>&quot;sa&quot;</i>
    angemeldet)<br>
    </p>
    <p>Gruss und Dank<br>
    &nbsp;&nbsp;&nbsp; Dietmar</p>

  • #2
    Hallo,<br>
    habe oben stehendes Problem immer noch nicht lösen können ...<br>
    Bin nun auf die <b>SQL Server-Eigenschaften</b> gegangen und fand unter <br>
    dem Reiter <b>Servereinstellungen</b> Bereich <b>Serververhalten</b> <br>
    den Schalter <b>Direkte Änderungen im Systemkatalog zulassen</b>.</p>
    <p>Was bedeutet dieser Schalter ? In der Doku konnte ich nichts genaueres
    darüber erfahren.<br>
    Habe natürlich dies ausprobiert und konnte wieder nicht einen Trigger anlegen.<br>
    Muss man für diese Änderung den Server neu starten?<br>
    <br>
    Habe auch am Server versucht den Trigger anzulegen (man weiss ja nie) - ohne
    Erfolg.</p>
    <p>Gruss und Dank<br>
    &nbsp;&nbsp;&nbsp; Dietmar</p&gt

    Comment


    • #3
      Hallo,

      ich gehe davon aus, dass hinter <i>sysprocesses</i> <b>keine</b> echte Tabelle steckt, sondern das Gebilde nur im Arbeitsspeicher existiert. Da der SQL-Standard zwingend vorschreibt, dass ein SQL-Server seine Zustandsdaten über den SQL-Weg (SELECT) herausrücken muss, existiert der Catalog (alias die Systemtabellen-Sammlung), so dass es ausreicht, diese Tabelle nach Außen hin nur zu simulieren.

      Da der Inhalt von <i>sysprocesses</i> eine extrem hohe Volatilität hat, würde ein Trigger zu einer vorher nicht kalkulierbaren Bremse werden. Ich kann mir daher vorstellen, dass der Server aus diesem Grund derartige Erweiterungen nicht zulässt

      Comment


      • #4
        Hallo Andreas,<br>
        <br>
        &gt;ich gehe davon aus, dass hinter <i>sysprocesses</i> <b>keine</b> echte
        Tabelle steckt, sondern das Gebilde<br>
        &gt;nur im Arbeitsspeicher existiert.&nbsp;<br>
        Stimmt, beim SP3 wird eine <i>upgrade.sql </i>verwendet, die folgenden Text
        enthält&nbsp;<br>
        &nbsp;&nbsp;&nbsp; <i>Create fake tables in master</i> ... und dann wenig
        später ... <i>CREATE TABLE sysprocesses&nbsp;</i><p>&gt;Da der Inhalt von <i>sysprocesses</i> eine extrem hohe Volatilität hat, würde
        ein Trigger zu einer vorher nicht <br>
        &gt;kalkulierbaren Bremse werden.&nbsp;<br>
        deswegen wollte ich nur den Insert-Trigger verwenden&nbsp;<br>
        &gt;Ich kann mir
        daher vorstellen, dass der Server aus diesem Grund derartige Erweiterungen nicht
        zulässt.<br>
        Bei einer Installation eines ServicePacks schon ... nur ist mir dieses Thema
        etwas zu heiß. (man findet <i>protecttype = 206</i><i>,</i> dieses Flag/Feld
        müsste man aufheben und die Verwaltung außenrum zu schreiben ist nicht ganz
        Trivial)</p>
        <p>Meine eigentliche Absicht ist, herauszufinden, wann und wer sich am
        Datenbank-Server angemeldet und wieder abgemeldet hat. Leider ist <i>sysprocesses</i> die Tabelle, die diese Information enthält. <br>
        Mit einem Insert-Trigger könnte ich die Daten in eine andere Tabelle als
        Historie überspielen.<br>
        Gibt's dafür eine andere Möglichkeit ?</p>
        <p>Gruss und Dank<br>
        &nbsp;&nbsp;&nbsp; Dietma

        Comment

        Working...
        X