You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何排查SQL用户登录权限/用户映射修改及权限莫名移除问题

排查SQL账户权限莫名被移除的方法

要找出是谁、何时、通过什么方式移除了权限,按以下步骤排查:

  • 优先查SQL Server错误日志
    这是最直接的信息来源,你可以通过SSMS的「管理」→「SQL Server日志」浏览,也可以用T-SQL精准筛选权限变更相关的操作:

    -- 筛选包含REVOKE、DROP USER、ALTER ROLE等关键字的日志
    EXEC sp_readerrorlog 0, 1, 'REVOKE', 'DENY', 'DROP USER', 'ALTER ROLE'
    

    日志里会记录操作的登录名、执行时间和具体语句。

  • 查看SQL Server审核日志(若已启用)
    如果之前配置了服务器或数据库级的审核,这里会有最详细的操作记录:

    -- 替换为你的审核文件路径
    SELECT event_time, session_server_principal_name, statement
    FROM sys.fn_get_audit_file('C:\Audits\YourAuditLog*.sqlaudit', DEFAULT, DEFAULT)
    WHERE action_id IN ('RL', 'DL', 'AL') -- RL=撤销权限, DL=删除用户, AL=修改角色
    

    要是没启用审核,建议之后开启,方便后续排查类似问题。

  • 检查Windows应用程序日志
    打开Windows事件查看器,定位到「Windows日志」→「应用程序」,筛选来源为MSSQLSERVER的事件,能找到SQL Server相关的登录和操作记录,尤其是用Windows账户执行的操作。

  • 查数据库系统视图的变更时间
    通过系统视图确认账户最后被修改的时间,再对应日志找时间点的操作:

    -- 替换为你的目标账户名
    SELECT name, create_date, modify_date
    FROM sys.database_principals
    WHERE name = 'YourTargetUserName'
    

    若账户是服务器级的,换成sys.server_principals查询。

  • 排查自动化脚本/作业
    很多时候权限莫名丢失是自动化操作导致的:

    • 检查SQL Server Agent里的定时作业,看有没有部署、清理类脚本执行了权限变更;
    • 排查DevOps工具、数据库管理工具的自动化流程,确认是否有脚本误操作移除了权限。

内容的提问来源于stack exchange,提问作者Katherine Andres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 06:05:04