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

mev*_*eva 8 amazon-redshift

stl_load_errorsAmazon Redshift 文档指出“该表对所有用户可见。” 但是,以超级用户(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)
Run Code Online (Sandbox Code Playgroud)

非超级用户:

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

此外,我可以使用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)
Run Code Online (Sandbox Code Playgroud)

小智 6

这里的解决方案是授予SYSLOG ACCESS权限。这是文档:AWS - 系统表和视图中数据的可见性


Tec*_*ort 6

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

更改用户用户名 SYSLOG ACCESS { UNRESTRICTED }


Rah*_*pta 1

你是对的!该表对所有用户都可见,但这里的问题是主用户可以看到所有用户的所有加载错误。

而其他用户只能看到自己的错误日志。在您的情况下,“emonsen”只能看到自己的错误日志,如“emonsen”生成的加载错误。特权没什么问题