SQL SERVER - 谁更改了SQL登录密码?
转自:https://blog.sqlauthority.com/2016/04/03/sql-server-changed-password-sql-login-interview-question-week-065/?tdsourcetag=s_pctim_aiomsg
我的客户注意到,随机地,SQL“SA”帐户密码被重置,他们想知道谁在做这件事?我知道SQL Server错误日志不记录登录密码更改事件。所以我的下一个想法是“默认跟踪”应该有这些数据。在我的实验室机器上,我在查询下面运行以查找捕获的事件
1
2
3
4
五
6
7
8
9
10
11
12
13
|
DECLARE @Trace_ID INT ; SELECT @Trace_ID = id FROM sys.traces WHERE is_default = 1; SELECT t.EventID ,e. NAME AS Event_Description FROM sys.fn_trace_geteventinfo(@Trace_ID) t INNER JOIN sys.trace_events e ON t.eventID = e.trace_event_id WHERE e. name like '%Audit%' GROUP BY t.EventID ,e. NAME ; |
EventID Event_Description
- -------
18审计服务器启动并停止
20审计登录失败
102审计数据库范围GDR事件
103审计架构对象GDR事件
104审计Addlogin事件
105审计登录GDR事件
106审计登录更改属性事件
108审计添加登录到服务器角色事件
109审核添加数据库用户事件
110审核将成员添加到数据库角色事件
111审核添加角色事件
115审核备份/还原事件
116审核DBCC事件
117审核更改审核事件
152审核更改数据库所有者
153审核架构对象获取所有权事件
175审核服务器更改跟踪事件
遗憾的是,SQL Server默认跟踪仅记录审核登录更改属性事件类,而不记录审核登录更改密码事件类。因此,客户端可能需要运行自定义跟踪来跟踪密码更改。
因此,我们别无选择,只能通过新的跟踪进行监控。我想到的另一个想法是我们可以使用fn_dblog来读取事务日志。我告诉我的客户,这个方法是完整无证的。此方法的另一个问题是,如果检查点被触发,则数据将在T-log中刷新,因为主数据库处于简单恢复模型中。但对于他们至少调试系统中发生的事情来说,这是一个很好的开始。
以下是我提供的脚本故障排除方法:
创建登录以进行演示
1
2
3
4
五
6
|
USE [master] GO CREATE LOGIN [SQLLogin1] WITH PASSWORD =N '@Very$trongP@ssw0rd123' , DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION= OFF , CHECK_POLICY= OFF GO |
用它来更改密码
1
2
3
4
|
USE [master] GO ALTER LOGIN [SQLLogin1] WITH PASSWORD =N 'VerystrongP@ssword123' GO |
查询以查找更改密码的人员
1
2
3
4
|
SELECT [ Transaction SID] ,suser_sname([ Transaction SID]) AS 'Login Name' FROM ::fn_dblog( DEFAULT , DEFAULT ) WHERE [ Transaction Name ] = 'ALTER LOGIN' |
查询以查找更改了哪个帐户密码
1
2
3
|
SELECT [Lock Information] FROM ::fn_dblog( DEFAULT , DEFAULT ) WHERE [Lock Information] LIKE '%SERVER_PRINCIPAL%' |
现在我们可以使用下面的内容来查找哪个帐户是270(如上所示)
1
2
3
|
SELECT name FROM sys.server_principals WHERE principal_id = 270 |
你有没有用过这种无证的命令?请谨慎使用,因为这不是受支持的命令。因此请确保您在使用时要小心。我相信你有很多有趣的方式可以使用这个博客,我非常有兴趣了解其中的一些。请告诉我。
相关文章
- SQL Server 2016:内存列存储索引
- Sql server在另一台服务器,在Visual Studio 中没问题,IIS中 提示“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。。。。”
- SQL Server - Management Studio - Client Statistics - Wait time on server replies vs Client processing time
- Sql Server数据库在表中输入null值的方法!(快捷键)
- SQL SERVER错误:已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)
- SSH连接Linux的Server超时
- SQL Server密码爆破工具SQLdict
- 【GIS】ArcGIS Server密码
- sql server 小技巧(3) SQL Server 2012 数据库完整导出到SQL Azure (包括数据)
- sql:SQL Server metadata queries
- 破解Windows Server 2008R2带有域控的超级管理员密码
- sql server 数据分析优化实战(一)——SQL语句优化
- 阿里云server改动MySQL初始password---Linux学习笔记
- SQL Server SSPI handshake failed报错,sql server修改windows账户密码的影响,sql server订阅发布客户端访问一直报错
- (1.2)sql server for linux 开启代理服务(SQL AGENT),使用T-SQL新建作业
- (4.17)sql server中的uuid获取与使用
- SQL Server中用Case When Then多条件判断sql