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

如何阻止PowerBI datareaders用户访问数据库特定表?

阻止db_datareader用户访问特定表的操作方法

因为db_datareader角色会授予用户数据库内所有表的SELECT权限,要限制特定表的访问,必须通过DENY权限来覆盖角色的继承权限,具体步骤如下:

  1. 执行SQL语句拒绝用户对目标表的查询权限
    替换下面的用户名和表名,针对两张敏感表分别执行:

    DENY SELECT ON dbo.敏感表名1 TO 你的PowerBI用户账号;
    DENY SELECT ON dbo.敏感表名2 TO 你的PowerBI用户账号;
    
  2. 验证权限效果
    用该PowerBI用户登录数据库,尝试查询这两张表,会收到类似SELECT permission denied on object '敏感表名1', database '你的数据库名', schema 'dbo'.的错误,说明权限生效。

关键说明

  • 为什么不用REVOKE?:REVOKE只能移除直接授予用户的权限,但用户通过db_datareader角色继承的SELECT权限依然存在,无法阻止访问。而DENY是强制拒绝,优先级高于所有允许类权限(包括角色继承的)。
  • 恢复权限的方法:如果后续需要开放访问,执行REVOKE SELECT ON dbo.敏感表名 TO 你的PowerBI用户账号;即可,用户会自动恢复db_datareader角色带来的表访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:25:18