Redshift Query Editor V2报svv_redshift_databases权限错误如何解决
报错原因
Redshift Query Editor V2 左侧资源树加载数据库、Schema、表元数据时,必须查询系统视图svv_redshift_databases拉取集群内的数据库清单,当前登录使用的数据库账号无该系统视图的SELECT权限,就会触发该报错,阻断资源浏览流程。
解决步骤
- 先使用集群超级用户(默认管理员账号为
awsuser,即创建集群时指定的主账号)登录Redshift,执行以下语句确认报错账号的权限状态,将语句中的<your_login_username>替换为实际触发报错的登录用户名:
-- 确认用户存在 SELECT usename, usesysid FROM pg_user WHERE usename = '<your_login_username>'; -- 确认是否有目标视图的查询权限,返回f即为无权限 SELECT has_table_privilege('<your_login_username>', 'pg_catalog.svv_redshift_databases', 'SELECT');
- 给对应用户授予目标视图的查询权限:
GRANT SELECT ON pg_catalog.svv_redshift_databases TO <your_login_username>;
- 如果授权后仍无法正常浏览Schema、表层级资源,说明还缺少关联元数据视图的权限,Query Editor V2 加载全量元数据需要的视图权限可一并授予:
GRANT SELECT ON pg_catalog.svv_all_schemas TO <your_login_username>; GRANT SELECT ON pg_catalog.svv_all_tables TO <your_login_username>; GRANT SELECT ON pg_catalog.svv_all_columns TO <your_login_username>;
- 不想逐个配置视图权限的话,可以直接给用户授予Redshift预置的
sys:operator角色,该角色默认携带所有系统元数据视图的查询权限,不会授予业务表的写权限,适合普通查询类用户使用:
GRANT ROLE sys:operator TO <your_login_username>;
- 授权完成后,退出Query Editor V2重新登录,再展开左侧资源面板验证功能即可。
注意事项
- 该报错属于数据库层面的权限问题,和AWS控制台的IAM权限无关,不需要调整控制台访问策略。
- 不要为了解决该问题直接给普通用户授予
superuser权限,权限过大存在数据误操作、越权访问的安全风险,按需授予元数据查询权限或预置低权限角色即可。 - 以上操作同样适用于Redshift Serverless实例,权限配置逻辑和Provisioned集群一致。
内容的提问来源于stack exchange,提问作者Vzzarr
相关产品推荐
相关产品推荐

