none
如何查找sql server 登陆帐号被锁原因 RRS feed

  • 问题

  • 今天用sql server management studio 登陆数据的时候,得到消息,账户被锁了。虽然最后解锁了,但我想知道,sql server 里有没有log 可以知道这个帐号是如何被锁的?最好是能查出来是哪个application,或者那个人(ip)尝试登录的时候被锁住的?

    谢谢!
    2012年8月15日 15:31

答案

  • 一般被锁定, 是因为多次失败的登录导致, 这个默认的情况下, SQL 日志中是有记录失败登录的, 你可以查看 sql server 日志(managent studio 或者调用存储过程  sp_readerrorlog 来看)

    • 已标记为答案 tyrbl 2012年8月17日 5:33
    2012年8月16日 1:05
  • 如果查看 Login 失败, 参考:

    http://www.mssqltips.com/sqlservertip/1735/auditing-failed-logins-in-sql-server/

    失败的原因, 与日志中记录的错误 state 相关, 参考:

    http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx

    比如 "桦仔" 截的那个图, 可以得到这样的信息:

    sa 登录失败, 失败的客户端在日志中有写, 时间是 LogDate 对应的时间, 状态为 8, 对于第2个链接给的表, 是密码输入错误

    一般来说, 连续几次失败的登录, 就会导致帐号被锁( CHECK_POLICY 选项打开的情况), 通过查询日志, 结合 LogDate, 你可以看下对应的帐号是否有最近几次登录失败, 就能确定帐号被锁的原因了

    • 已标记为答案 tyrbl 2012年8月17日 5:33
    2012年8月16日 9:33
  • 历史记录里面好像没有。但是有个办法,你用SQL Profiler或者XE去抓错误信息,可以看到ApplicationName。不过这个也不见得是你要的。ApplicationName是SSMS, ASP.Net之类的东西。虽然可以在连接时写进去,但是很少有App会去写这个。

    想不想时已是想,不如不想都不想。

    • 已标记为答案 tyrbl 2012年8月17日 5:33
    2012年8月17日 5:00
    版主

全部回复

  • Not as I know of, it's handled by group security policy.
    2012年8月15日 15:46
  • 一般被锁定, 是因为多次失败的登录导致, 这个默认的情况下, SQL 日志中是有记录失败登录的, 你可以查看 sql server 日志(managent studio 或者调用存储过程  sp_readerrorlog 来看)

    • 已标记为答案 tyrbl 2012年8月17日 5:33
    2012年8月16日 1:05
  • 关注中  

    给我写信: QQ我:点击这里给我发消息

    2012年8月16日 1:23
  • 一般被锁定, 是因为多次失败的登录导致, 这个默认的情况下, SQL 日志中是有记录失败登录的, 你可以查看 sql server 日志(managent studio 或者调用存储过程  sp_readerrorlog 来看)


    可以具体解释一下吗?谢谢!
    2012年8月16日 5:36
  • 一般被锁定, 是因为多次失败的登录导致, 这个默认的情况下, SQL 日志中是有记录失败登录的, 你可以查看 sql server 日志(managent studio 或者调用存储过程  sp_readerrorlog 来看)


    可以具体解释一下吗?谢谢!

    jack的意思是说可以看到是从哪个客户端来登陆失败的.



    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.

    2012年8月16日 6:10
  •  是这样吗?


    给我写信: QQ我:点击这里给我发消息

    2012年8月16日 6:31
  • 如果查看 Login 失败, 参考:

    http://www.mssqltips.com/sqlservertip/1735/auditing-failed-logins-in-sql-server/

    失败的原因, 与日志中记录的错误 state 相关, 参考:

    http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx

    比如 "桦仔" 截的那个图, 可以得到这样的信息:

    sa 登录失败, 失败的客户端在日志中有写, 时间是 LogDate 对应的时间, 状态为 8, 对于第2个链接给的表, 是密码输入错误

    一般来说, 连续几次失败的登录, 就会导致帐号被锁( CHECK_POLICY 选项打开的情况), 通过查询日志, 结合 LogDate, 你可以看下对应的帐号是否有最近几次登录失败, 就能确定帐号被锁的原因了

    • 已标记为答案 tyrbl 2012年8月17日 5:33
    2012年8月16日 9:33
  • But hard to tell who locked id.
    2012年8月16日 14:23
  • 是啊,不知道是谁在尝试猜解密码

    给我写信: QQ我:点击这里给我发消息

    • 已标记为答案 tyrbl 2012年8月17日 4:39
    • 取消答案标记 tyrbl 2012年8月17日 4:40
    2012年8月16日 14:58
  • 如果查看 Login 失败, 参考:

    http://www.mssqltips.com/sqlservertip/1735/auditing-failed-logins-in-sql-server/

    失败的原因, 与日志中记录的错误 state 相关, 参考:

    http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx

    比如 "桦仔" 截的那个图, 可以得到这样的信息:

    sa 登录失败, 失败的客户端在日志中有写, 时间是 LogDate 对应的时间, 状态为 8, 对于第2个链接给的表, 是密码输入错误

    一般来说, 连续几次失败的登录, 就会导致帐号被锁( CHECK_POLICY 选项打开的情况), 通过查询日志, 结合 LogDate, 你可以看下对应的帐号是否有最近几次登录失败, 就能确定帐号被锁的原因了


    谢谢大家解答,我看了error log, 能否有什么办法知道是哪个application 在尝试登陆?因为一个server 上有很多batch, 我怀疑是某个batch 配置文件有问题了。一个个检查时间太久了。
    2012年8月17日 4:43
  • 历史记录里面好像没有。但是有个办法,你用SQL Profiler或者XE去抓错误信息,可以看到ApplicationName。不过这个也不见得是你要的。ApplicationName是SSMS, ASP.Net之类的东西。虽然可以在连接时写进去,但是很少有App会去写这个。

    想不想时已是想,不如不想都不想。

    • 已标记为答案 tyrbl 2012年8月17日 5:33
    2012年8月17日 5:00
    版主
  • 看来只能这样了,谢谢大家!
    2012年8月17日 5:34