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

.NET连接AWS Redshift Serverless无法查看手动创建的表

问题解决方法

1. 修正SchemaPattern匹配规则

代码里SchemaPattern = "%public"采用的是PostgreSQL LIKE语法,会匹配以public结尾的模式,而public是精确模式名,需调整为精确匹配或正确的通配符规则:

ListTablesRequest listTables = new ListTablesRequest();
listTables.WorkgroupName = "preview";
listTables.Database = "dev";
listTables.SchemaPattern = "public"; // 精确匹配public模式
// 若需模糊匹配包含public的模式,可改为 "%public%"

2. 检查数据库用户权限

Redshift Data API调用时的IAM角色会映射到对应数据库用户,该用户必须具备访问public模式和name表的权限:
登录Redshift查询编辑器,执行以下授权语句(替换<your_db_user>为Data API对应的数据库用户):

-- 授予public模式的使用权限
GRANT USAGE ON SCHEMA public TO <your_db_user>;
-- 授予name表的访问权限
GRANT SELECT ON TABLE public.name TO <your_db_user>;

若需让该用户自动获取后续新建表的权限,可追加:

ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO <your_db_user>;

3. 确认表的所有者与可见性

手动创建的表默认仅所有者和超级用户可见,若Data API对应的用户不是表所有者,可通过以下方式处理:

  • 查看表所有者:
SELECT tableowner FROM information_schema.tables WHERE table_schema = 'public' AND table_name = 'name';
  • 修改表所有者(可选):
ALTER TABLE public.name OWNER TO <your_db_user>;

4. 优化异步调用代码(可选)

调整异步调用写法,避免潜在线程问题:

using Amazon.RedshiftDataAPIService;
using Amazon.RedshiftDataAPIService.Model;

var client = new AmazonRedshiftDataAPIServiceClient(Amazon.RegionEndpoint.USEast1);

// 列出数据库
var listDatabaseResp = await client.ListDatabasesAsync(new ListDatabasesRequest
{
    WorkgroupName = "preview",
    Database = "dev"
});

// 列出模式
var listSchemasResp = await client.ListSchemasAsync(new ListSchemasRequest
{
    WorkgroupName = "preview",
    Database = "dev"
});

// 列出表
var listTablesResp = await client.ListTablesAsync(new ListTablesRequest
{
    WorkgroupName = "preview",
    Database = "dev",
    SchemaPattern = "public"
});

foreach (var table in listTablesResp.Tables)
{
    if (table.Name == "name")
    {
        Console.WriteLine("found");
    }
}

Console.ReadLine();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:34:58