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

如何配置Kusto权限:让用户仅执行指定函数而无法查询表?

让Corp账号执行函数但无法直接查询表的解决方案

问题根源

你之前给Table1配置Restricted View Access策略后,普通的Database Viewer权限账号(比如Corp)会被彻底限制——既不能直接查询Table1,连依赖这个表的函数也没法执行,因为这个策略会阻断所有非UnrestrictedViewer账号的间接访问路径。

具体操作步骤

要实现目标,得调整权限逻辑,按下面的步骤来:

1. 移除Table1的Restricted View Access策略

这个策略是核心阻碍,先把它删掉:

ALTER TABLE Table1 DROP POLICY RestrictedViewAccessPolicy;

2. 配置精细化权限

  • 撤销Corp对Table1的直接访问权限,确保它碰不到原表:
    REVOKE SELECT ON Table1 FROM [Corp];
    
  • 给Corp开放函数fnGetTable1的执行权限:
    GRANT EXECUTE ON fnGetTable1 TO [Corp];
    
  • 关键配置:让函数以所有者身份执行。这样Corp调用函数时,会借用函数所有者的权限访问Table1,自身不需要直接权限。修改函数时加上EXECUTE AS OWNER:
    CREATE OR ALTER FUNCTION fnGetTable1()
    RETURNS TABLE (...)
    WITH EXECUTE AS OWNER
    AS
    BEGIN
        -- 这里编写你的函数逻辑,比如 SELECT * FROM Table1 WHERE ...
    END;
    

验证方法

  • 用Corp账号尝试直接查询Table1:SELECT * FROM Table1; 应该返回权限错误。
  • 用Corp账号执行函数:SELECT * FROM fnGetTable1(); 应该能正常返回结果。

额外说明

如果其他表需要保留Restricted View Access策略,完全没问题——只针对Table1移除该策略,再按上面的权限配置操作即可,不会影响其他表的限制规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:54:53