我有一个在Redshift中创建权限的用户删除一个表并再次创建它。该用户甚至无法访问甚至在桌面上执行选择。知道为什么吗?我已经完成了以下命令,它似乎没有工作:
ALTER DEFAULT PRIVILEGES IN SCHEMA <schemaname> grant all on schema <schemaname> to <user>;
GRANT USAGE ON SCHEMA <schemaname> TO <user>
编辑@bonsaioak
我看不出这个数据库中发生了什么,但是用户有点没有使用(因此USAGE
)架构的权限。我只能推测某个地方有某种REVOKE ALL PRIVILEGES
给这个特定的用户,但为了更好地得出问题的根源,人们需要调查日志文件。 GRANT USAGE
似乎解决了这个问题。
模式中表的select权限不是为模式本身定义的权限。架构特权是usage
(看那里有什么),alter
(重命名)和drop
(删除)。默认情况下,要从架构中的所有表中授予select,您必须使用
ALTER DEFAULT PRIVILEGES IN SCHEMA <schemaname> grant all on tables to <user>;