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

Snowflake Native App无法访问安装账户表的解决办法

Snowflake Native App无法访问安装账户表的问题解决

问题背景

开发Snowflake Native App时,已通过前端授权按钮授予安装账户中dev.dev.t表的访问权限,但测试存储过程执行失败。执行SHOW REFERENCES IN APPLICATION DATA_FIT_APP_MYAPP;确认目标表引用已存在。

原测试存储过程代码:

create or replace procedure app_instance_schema.p_select(t varchar )
returns varchar  
language sql 
as $$
declare 
    query varchar default 'select * from ' || t;
begin 
    execute  immediate :query ; 
    return 'ok';
end;
$$;

解决方法

方法1:使用Reference语法修改存储过程

修改存储过程,采用reference()函数访问目标表,代码如下:

create or replace procedure app_instance_schema.p_select(t varchar )
returns varchar  
language sql 
as $$
declare 
    query varchar default 'select * from reference(''' || t || ''')';
begin 
    execute  immediate :query ; 
    return 'ok';
end;
$$;

对应底层SQL写法为select * from reference('t')。同时需要在manifest.yml中配置对应引用规则,支持前端授权选择:

references:
  - t:
      label: "t table" 
      description: "Select table"
      privileges:
        - SELECT
      object_type: Table 
      multi_valued: false 
      register_callback: app_instance_schema.update_reference 

注意:manifest配置中的引用名称“t”必须与存储过程中使用的名称完全一致。

方法2:直接给应用授予权限(更优方案)

通过给应用直接授予目标表的访问权限,可以跳过Reference语法,直接在存储过程中使用表名访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:25:13