这是可疑登录仪表板报告的 SQL 版本。
此仪表板报告提供了在指定日期范围内,与先前登录情况存在可疑差异的新用户登录的详细信息。通过识别异常登录尝试,管理员可以采取积极措施来保护用户帐户和论坛免受潜在安全威胁。
-- [params]
-- date :start_date = 2024-01-07
-- date :end_date = 2024-02-08
SELECT
u.id user_id,
u.username,
t.client_ip,
t.user_agent,
t.created_at login_time
FROM user_auth_token_logs t
JOIN users u ON u.id = t.user_id
WHERE t.action = 'suspicious'
AND t.created_at >= :start_date
AND t.created_at <= :end_date
ORDER BY t.created_at DESC
SQL 查询说明
此 SQL 查询通过检索在指定日期范围内被标记为可疑的登录尝试列表来运行。以下是查询功能明细:
- 参数定义:查询首先定义两个参数
:start_date和:end_date,用于指定报告的时间段。两个日期参数均接受YYYY-MM-DD格式。 - 数据选择:查询从
user_auth_token_logs表(记录用户身份验证活动的详细信息)和users表(包含用户信息)中选择特定字段。选择的字段包括:u.id(user_id):用户的唯一标识符。u.username:用户的用户名。t.client_ip:进行登录尝试的 IP 地址。t.user_agent:用于登录尝试的浏览器或设备的 user agent 字符串。t.created_at(login_time):发生登录尝试的时间戳。
- 连接操作:查询通过其公共
user_id字段将user_auth_token_logs表 (t) 与users表 (u) 连接起来,以将每次登录尝试与相应的用户信息相关联。 - 筛选:它筛选记录,仅包括在
user_auth_token_logs表的action字段中标记为suspicious的登录尝试。此外,它还会筛选记录,仅包括在指定日期范围(从:start_date到:end_date)内发生的记录。 - 排序:最后,查询按
created_at时间戳降序对结果进行排序,确保最新的可疑登录尝试首先列出。
示例结果
| user | username | client_ip | user_agent | login_time |
|---|---|---|---|---|
| user_id_example_1 | username_example | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 | Mozilla/5.0 (iPhone; CPU iPhone OS 17_2_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1 | 2024-01-09T08:18:57.535Z |
| … | … | … | … | … |