Was bedeutet "* Passwort ------------" in einem Profil-Deadlock-Bericht?

10

In SQL Server 2008 R2 wurden mehrere Deadlock-Berichte mit dem Kennwort "* password ------------" im Eingabepuffer angezeigt. Es sieht aus wie ein Angriff, aber in diesem Fall kenne ich den Grund oder die Art des Angriffs nicht.

(Das Protokoll wurde von einem erfahrenen DBA erstellt, der viel Erfahrung hat und mir das sagte, nicht mir)

Weiß jemand was es ist? Vielen Dank!

Beispiel:

<?xml version="1.0"?>
<blocked-process>
  <process id="process879948" taskpriority="0" logused="0" waitresource="KEY: 5:72057602473263104 (1d69201d0ba6)" waittime="5185" ownerId="88389135" transactionname="SELECT" lasttranstarted="2012-09-25T18:11:02.507" XDES="0x1f7d2a590" lockMode="S" schedulerid="2" kpid="4552" status="suspended" spid="86" sbid="2" ecid="0" priority="0" trancount="0" lastbatchstarted="2012-09-25T18:11:02.507" lastbatchcompleted="2012-09-25T18:11:02.507" lastattention="2012-09-25T18:07:35.740" clientapp=".Net SqlClient Data Provider" hostname="IP-xxxxxxxx" hostpid="4868" loginname="sa" isolationlevel="read committed (2)" xactid="88389135" currentdb="1" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">
    <executionStack>
      <frame line="14" stmtstart="374" stmtend="764" sqlhandle="0x03000500dac2967f208e4000a19d00000000000000000000"/>
      <frame line="1" stmtstart="44" sqlhandle="0x02000000632f7e131f79ec7312284505961e537a61b81be7"/>
      <frame line="1" sqlhandle="0x000000000000000000000000000000000000000000000000"/>
    </executionStack>
    <inputbuf>

*password---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------   </inputbuf>
  </process>
</blocked-process>
Diego Jancic
quelle

Antworten:

12

Dies bedeutet lediglich, dass der Text der Anweisung die Zeichenfolge "Kennwort" enthielt und SQL Server "hilfreich" sie als Sicherheitsfunktion maskiert hat, um zu verhindern, dass Sie das Kennwort eines anderen Benutzers sehen.

Ich konnte dies wie folgt reproduzieren

CREATE TABLE T(X varchar(1000))

Verbindung 1

BEGIN TRAN

INSERT INTO T VALUES('password1') 

WAITFOR DELAY '00:01:00'

SELECT * FROM T WHERE X = 'password2'

ROLLBACK

Verbindung 2

BEGIN TRAN

INSERT INTO T VALUES('password2') 

WAITFOR DELAY '00:01:00'

SELECT * FROM T WHERE X = 'password1'

ROLLBACK

Rufen Sie dann das Diagramm aus der erweiterten Ereignisablaufverfolgung ab

Martin Smith
quelle
2
@DiegoJancic - Ob dies ein Angriff ist oder nicht, hängt davon ab, ob Sie erwarten, dass legitime Abfragen diese Zeichenfolge enthalten oder nicht. Wenn Sie keine Objektnamen haben, die diese Zeichenfolge enthalten, könnte dies möglicherweise auf einen SQL-Injection-Versuch hinweisen.
Martin Smith
Danke @MartinSmith, in meinem Fall ist es kein Angriff, ich habe eine Benutzertabelle mit einem Passwortfeld. Danke noch einmal! =)
Diego Jancic
Gibt es eine Möglichkeit, diese Funktion zu deaktivieren?
jlb
1
@jlb - Nicht dass ich es wüsste. Sie können hier eine Anfrage stellen connect.microsoft.com/SQLServer/Feedback und vielleicht werden Sie herausfinden, dass es einen Weg gibt.
Martin Smith
@MartinSmith Habe in den MSDN-Foren nachgefragt und alle Antworten zeigen an, dass es keine Möglichkeit gibt, diese Funktionalität zu deaktivieren.
jlb