Що означає "* пароль ------------" у звіті про тупик профілю?


10

У SQL Server 2008 R2 я отримав кілька звітів про тупиковий стан, у яких "* пароль ------------" у вхідному буфері. Це схоже на напад, але в цьому випадку я не знаю причини чи типу нападу.

(журнал був створений експертом DBA, який має великий досвід, і сказав мені це, а не я)

Хтось знає, що це? Дякую!

Приклад:

<?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>

Відповіді:


12

Це просто означає, що текст заяви містив рядок "пароль", а SQL Server "корисно" маскував його як функцію безпеки, щоб запобігти вам побачити чужий пароль.

Я зміг відтворити це наступним чином

CREATE TABLE T(X varchar(1000))

З'єднання 1

BEGIN TRAN

INSERT INTO T VALUES('password1') 

WAITFOR DELAY '00:01:00'

SELECT * FROM T WHERE X = 'password2'

ROLLBACK

З'єднання 2

BEGIN TRAN

INSERT INTO T VALUES('password2') 

WAITFOR DELAY '00:01:00'

SELECT * FROM T WHERE X = 'password1'

ROLLBACK

Потім витягніть графік із розширеного сліду подій


2
@DiegoJancic - Що стосується того, це атака чи ні, це залежить, якщо ви очікуєте, що законні запити містять цей рядок чи ні. Якщо у вас немає імен об'єктів, що містять цю рядок, можливо, це може означати спробу ін'єкції SQL.
Мартін Сміт

Дякую @MartinSmith, у моєму випадку це не атака, у мене є таблиця користувачів із полем пароля. Знову дякую! =)
Дієго Янчич

Чи є спосіб відключити цю функцію?
jlb

1
@jlb - Не те, про що я знаю. Ви можете підняти запит тут connect.microsoft.com/SQLServer/Feedback, і, можливо, ви дізнаєтесь, що є якийсь спосіб.
Мартін Сміт

@MartinSmith Запитали на форумах MSDN, і всі відповіді вказують, що немає можливості відключити цю функціональність.
jlb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.