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)
答案 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}