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

如何在SQL Server中测试指定数据库VIEW的访问权限?附查询示例

在SQL Server中测试指定视图的访问权限

方法1:通过系统视图查询权限详情

要确认当前登录账号对目标视图的具体权限,可查询SQL Server内置的系统视图,组合sys.database_permissions、sys.objects和sys.database_principals就能精准获取权限信息:

SELECT 
    dp.permission_name,
    dp.state_desc,
    o.name AS view_name,
    o.type_desc AS object_type
FROM 
    sys.database_permissions dp
JOIN 
    sys.objects o ON dp.major_id = o.object_id
JOIN 
    sys.database_principals dpri ON dp.grantee_principal_id = dpri.principal_id
WHERE 
    o.name = 'ADDRESS_DISPLAY'
    AND o.type = 'V' -- 筛选视图类型
    AND dpri.name = USER_NAME(); -- 匹配当前登录用户

这个查询会返回你对ADDRESS_DISPLAY视图的权限类型(如SELECT)和权限状态(如GRANT或DENY)。

方法2:直接执行查询验证访问权限

最直观的验证方式就是尝试读取视图数据——如果有权限会返回结果,无权限则会抛出明确的权限错误。以LOCATION_DATABASE.ADDRESS_DISPLAY为例:

推荐:查询前10条记录(避免返回大量数据)

SELECT TOP 10 * FROM LOCATION_DATABASE.ADDRESS_DISPLAY;

可选:查询所有记录(仅当你确认数据量不大时使用)

SELECT * FROM LOCATION_DATABASE.ADDRESS_DISPLAY;

如果执行成功并返回数据,说明你拥有该视图的SELECT权限;如果收到类似拒绝了对对象 'ADDRESS_DISPLAY' (数据库 'LOCATION_DATABASE',架构 'dbo')的 SELECT 权限的错误,就意味着没有访问权限。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:47:31