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

能否以指定用户身份执行inline-table valued function?附代码示例

内联表值函数(inline-table valued function)指定执行身份方法

首先明确结论:可以指定特定用户身份执行内联表值函数,SQL Server原生支持通过WITH EXECUTE AS子句配置函数的执行上下文。

支持的执行身份选项

  • EXECUTE AS CALLER:默认配置,以调用函数的用户身份执行,权限校验完全以调用方权限为准
  • EXECUTE AS OWNER:以该函数的所有者身份执行
  • EXECUTE AS '指定用户名':以你明确指定的某个数据库用户身份执行,创建函数的用户需要持有对该用户的模拟权限
  • EXECUTE AS SELF:以创建/最近一次修改该函数的用户身份执行

写法示例

CREATE FUNCTION fun()
WITH EXECUTE AS OWNER
RETURNS TABLE
AS
RETURN
(
    -- 此处填写你的查询逻辑
    SELECT col1, col2 FROM 你的业务表
)

注意:内联表值函数的执行上下文配置仅作用于函数内部的权限校验,不会更改调用方在函数外的权限上下文。如果配置为指定自定义用户,需确保创建函数的账号拥有对该用户的IMPERSONATE权限,否则函数会创建失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:39:04