O que “* senha ------------” significa em um relatório de conflito de perfil?

10

No SQL Server 2008 R2, recebi vários relatórios de deadlock com "* senha ------------" no buffer de entrada. Parece um ataque, mas nesse caso eu não sei o motivo ou o tipo de ataque.

(o log foi gerado por um especialista em DBA com muita experiência e me disse isso, não eu)

Alguém sabe o que é isso? Obrigado!

Exemplo:

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

Respostas:

12

Significa apenas que o texto da instrução continha a string "password" e o SQL Server "úteis" mascarou-a como um recurso de segurança para impedir que você veja a senha de outra pessoa.

Consegui reproduzir isso da seguinte maneira

CREATE TABLE T(X varchar(1000))

Conexão 1

BEGIN TRAN

INSERT INTO T VALUES('password1') 

WAITFOR DELAY '00:01:00'

SELECT * FROM T WHERE X = 'password2'

ROLLBACK

Conexão 2

BEGIN TRAN

INSERT INTO T VALUES('password2') 

WAITFOR DELAY '00:01:00'

SELECT * FROM T WHERE X = 'password1'

ROLLBACK

Em seguida, recuperando o gráfico do rastreamento de eventos estendidos

Martin Smith
fonte
2
@DiegoJancic - Quanto a se este é um ataque ou não, depende se você espera que consultas legítimas contenham essa sequência ou não. Se você não tiver nenhum nome de objeto que contenha essa sequência, talvez isso possa indicar uma tentativa de injeção de SQL.
Martin Smith
Obrigado @MartinSmith, no meu caso não é um ataque, eu tenho uma tabela de usuários com um campo de senha. Obrigado novamente! =)
Diego Jancic 28/09/12
Existe uma maneira de desativar esse recurso?
JLB
11
@jlb - Não que eu esteja ciente. Você pode enviar uma solicitação aqui connect.microsoft.com/SQLServer/Feedback e talvez descubra que existe alguma maneira.
Martin Smith
@MartinSmith Perguntou nos fóruns do MSDN e todas as respostas indicam que não há como desativar essa funcionalidade.
JLB