为什么非超级用户不能在Redshift中看到stl_load_errors中的数据?

时间:2016-12-08 17:54:59

标签: amazon-redshift

Amazon Redshift documentation for stl_load_errors表示"此表对所有用户都可见。"但是,当查询为超级用户(936行)与非超级用户(0行)时,我得到的结果不同。为什么查询运行为非超级用户返回0行?

以下是我运行的查询。

超级用户:

$ psql -U masteruser -h XX.XX.XX.XX -p 5439 bi -w -c "select count(*) from stl_load_errors"
 count 
-------
   936
(1 row)

非超级用户:

$ psql -U emonsen -h XX.XX.XX.XX -p 5439 bi -w -c "select count(*) from stl_load_errors"
 count 
-------
     0
(1 row)

此外,我可以使用HAS_TABLE_PRIVILEGE来表明Redshift认为" emonsen"在stl_load_errors上具有正确的权限:

$ psql -U masteruser -h XX.XX.XX.XX -p 5439 bi -w -c "select has_table_privilege('emonsen', 'stl_load_errors', 'select')"
 has_table_privilege 
---------------------
 t
(1 row)

3 个答案:

答案 0 :(得分:1)

你是对的!所有用户都可以看到此表,但此处的问题是Masteruser可以查看所有用户的所有加载错误。

而其他用户只能看到自己的错误日志。在你的情况下,#emonsen'只能查看自己的错误日志,例如“emonsen”生成的加载错误。特权没有错误

答案 1 :(得分:0)

此处的解决方案将授予 SYSLOG ACCESS 权限。以下是文档:AWS - Visibility of Data in System Tables and Views

答案 2 :(得分:0)

通过授予对syslog的访问权限,任何用户都可以看到其他用户的所有stl_load_errors结果,如下所示。

更改用户名SYSLOG ACCESS {UNRESTRICTED}