Announcement

Collapse
No announcement yet.

MSSQL Log Funktionalität

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

  • MSSQL Log Funktionalität

    Hallo,

    in wie weit werden bei MSSQL die Veränderung durch Nutzer protokolliert?
    Ist es möglich einzustellen, das das DBMS mitloggt was einzelne Benutzer an Datenmaterial verändern?

    Güße,
    André

  • #2
    Hallo André,

    zwar wird jede Transaktion im LOG protokolliert, aber nicht in der Form, das sie für Dich les- oder nutzbar wären.

    Wenn Du Änderungen protokollieren willst, müsstest Du Trigger für die Tabellen schreiben, die die Änderungen in eine separate Tabelle wegschreiben.
    Einen internen Automatismus gibt es dafür nicht.

    Willst Du nur so mal zusehen, was wer macht, kannst Du das über den "Profiler" machen; auch gut zum analysieren von Performance-Problemen.

    Gruß, Olaf
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Es gibt ein Tool welches das Transkationslog aufbereiten kann, jedoch kosted es einige € (AFAIK 4-Stellig) und ich weis akutell auch nicht mehr den genauen Namen. War irgendwas mit Logger und SQL.

      Comment


      • #4
        Hallo Bernhard,

        das Tool nutzt einem aber auch nur für Transaktion, die noch im LOG sind. Nach der nächsten LOG / Vollsicherung + Freigabe des Bereich, sind die Infos weg.

        Olaf
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #5
          Danke für die Vielen Antworten.
          Ich hatte gehofft das dann quasi irgendwie aufbereiten zu können. Aber wenn das stark unleserlich ist ist die Trigger-Table Variante besser!

          LG

          Comment


          • #6
            Hallo André,

            sollte Dich das LOG so brennend interessieren, es gibt undokumentierte SQL Befehle, z.B.

            DBCC LOG ('DBName', 1)

            Das zeigt Dir "ein wenig" den Inhalt des LOGs, wirst Du aber wenig mit anfangen können.

            Siehe auch
            http://www.mssqlcity.com/Articles/Un...C.htm#part_2_8

            Olaf.
            Olaf Helper

            <Blog> <Xing>
            * cogito ergo sum * errare humanum est * quote erat demonstrandum *
            Wenn ich denke, ist das ein Fehler und das beweise ich täglich

            Comment


            • #7
              Danke ich schau mal drüber

              Hab aber gleich die nächste Frage. Ich weiss das hört sich jetzt etwas .... dumm an aber ich hab keine Ahnung wie ich in meinen sql skripten unter mssql funktionen / prozeduren aufrufen kann. Habe es mit:

              EXECUTE mit_insert('Manuel Musterman');
              GO;

              probiert aber es funzt ned. Wie muss ich die aufrufen ?

              LG

              ------------------------------

              Boah ich habs endlich gefunden, sowas kann eine fertig machen. Irgendwie hat es den Anschein als hätte das T-SQL diesen prozeduralen Codecharakter verloren. Kann ja keiner Ahnen dass die die KLammern weglassen... was passiert denn wenn man mehrere Parameter übergeben würde, würden dann der Aufruf so aussehen:

              EXECUTE dbo.mit_insert 'Manuel Musterman' 'Parameter2' ... 'Parameter n';
              GO;

              ??

              ------------------------------

              Nochwas, gibt es bei TSQL auch eine Möglichkeit sowas zu formulieren:

              CREATE PROCEDURE mit_insert
              (@name AS VARCHAR(64)) --input parameter
              AS
              IF EXISTS(SELECT * FROM Mitarbeiter WHERE name = @name)

              RAISEERROR('Mitarbeiter ist breits vorhanden!',16,1)

              ELSE INSERT INTO MITARBEITER (name) values (@name)
              GO
              Zuletzt editiert von Andre.Arnold; 14.09.2007, 13:19.

              Comment


              • #8
                Genau so macht man es dann.
                Olaf Helper

                <Blog> <Xing>
                * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                Comment

                Working...
                X