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

Azure SQL数据库新建包含用户默认拥有全架构SELECT权限问题排查

Azure SQL数据库包含用户默认拥有全架构SELECT权限的排查方向
  • 检查用户是否被隐式添加到其他数据库角色:除Public外,db_datareader这类内置角色会赋予全库SELECT权限,执行以下SQL确认:

    SELECT dp.name AS 数据库用户, dr.name AS 数据库角色
    FROM sys.database_role_members drm
    JOIN sys.database_principals dp ON drm.member_principal_id = dp.principal_id
    JOIN sys.database_principals dr ON drm.role_principal_id = dr.principal_id
    WHERE dp.name = '你的目标用户名';
    
  • 检查架构的所有者设置:如果用户是某架构的所有者,会自动获得该架构的所有权限,执行SQL查看各架构的所有者:

    SELECT name AS 架构名, 
           (SELECT name FROM sys.database_principals WHERE principal_id = s.principal_id) AS 所有者名称
    FROM sys.schemas s;
    
  • 检查数据库级的直接权限授予:可能存在直接给用户授予数据库范围的SELECT权限,而非限定到特定架构,执行以下SQL排查:

    SELECT dp.name AS 被授权用户, perm.permission_name, perm.class_desc
    FROM sys.database_permissions perm
    JOIN sys.database_principals dp ON perm.grantee_principal_id = dp.principal_id
    WHERE dp.name = '你的目标用户名' AND perm.permission_name = 'SELECT';
    
  • 检查关联的服务器登录权限:虽然是包含用户,但如果该用户关联了服务器登录,且登录拥有serveradmin、sysadmin等高权限,会传递到数据库层面,执行SQL确认关联关系:

    SELECT sp.name AS 服务器登录名, dp.name AS 数据库用户
    FROM sys.server_principals sp
    JOIN sys.database_principals dp ON sp.sid = dp.sid
    WHERE dp.name = '你的目标用户名';
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:20:26