1. 前言
在进行MSSQL数据库管理时,常常需要查询登录记录,以方便管理员对用户登录情况进行监控和管理。然而,MSSQL数据库默认并不会记录登录信息,需要管理员进行相关设置后才能查询相关信息。那么,该如何查询MSSQL登录记录呢?本文将介绍一种简单、实用而有效的解决方案。
2. 检查登录记录是否开启
2.1 登录SQL Server Management Studio
在查询MSSQL登录记录之前,需要先检查登录记录是否开启。接下来,我们将通过SQL Server Management Studio进行相关操作。首先,登录SQL Server Management Studio,并打开目标数据库的属性窗口。
登录账号密码需要有对应数据库的管理员权限。
2.2 检查是否开启登录审计
在数据库属性窗口中,选择“安全性”标签,在左侧选择“登录审计”选项。在右侧窗口中,检查是否开启了“审核登录事件”和“审核失败的登录尝试”选项。如果未开启,需要先开启相应选项,才能查询相关登录记录。
USE [master]
GO
--开启登录审计的功能
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', REG_DWORD, 3"
GO
注意:开启登录审计功能会带来一定的系统负担,因此在开启之前需要仔细评估。
3. 查询登录历史记录
3.1 通过SQL语句查询
有了登录审计之后,就可以通过SQL语句查询登录历史记录了。可以使用以下查询语句,来查看所有登录历史记录:
USE master
GO
SELECT log.session_id, log.start_time,log.login_name,session.host_name,session.program_name
FROM sys.dm_exec_sessions session
JOIN sys.dm_exec_connections con
ON session.session_id = con.session_id
CROSS APPLY sys.dm_exec_sql_text(con.most_recent_sql_handle) AS query
JOIN sys.dm_exec_query_stats stats
ON stats.sql_handle = con.most_recent_sql_handle
JOIN sys.dm_exec_sessions log
ON log.session_id = con.session_id
WHERE session.is_user_process = 1
ORDER BY log.login_name
GO
注意:此查询语句可以查看所有登录历史记录,但查询结果可能会比较多。
3.2 通过SQL Server Management Studio查询
除了通过SQL语句查询登录历史记录外,还可以通过SQL Server Management Studio进行查询。
首先,登录SQL Server Management Studio,并打开“对象资源管理器”窗口。在左侧导航栏中,展开目标数据库的“安全性”文件夹,选择“审核”选项。
在右侧窗口中,选择“添加…”按钮,进行相关设置,如图所示:
点击“确定”之后,就可以在相应的位置看到查询结果。
4. 总结
查询MSSQL登录记录是数据库管理中非常重要的一个环节,可以有效地帮助管理员管理用户登录情况。通过本文介绍的方法,可以简单快捷地查询MSSQL登录历史记录。