使用用户名ziggy在AWS上创建了一个postgresql实例。我将数据库还原到该实例。但是我什至不能选择任何表格
select * FROM mac_childcare_parcels
给我ERROR: permission denied for relation mac_childcare_parcels
********** Error **********
该表的所有者属于postgres登录名。
所以我尝试运行以下命令:grant all privileges on all tables in schema public to ziggy
,但是由于我不是超级用户,因此我无法赋予自己特权,因此会引发权限错误。我必须怎么做才能访问表?
这也不起作用
grant select on mac_childcare_parcels to ziggy
此查询返回成功,但不允许登录Ziggy访问表
GRANT USAGE ON SCHEMA public TO ziggy;
答案 0 :(得分:2)
需要超级用户访问权限才能运行访问级别查询。但是正如您所说的那样,不存在访问权限,那么我会说复制您已从备份还原的数据库副本,并授予自己超级用户权限。 然后向所有用户提供所有需要的访问权限。
答案 1 :(得分:1)
首先使用超级用户登录,并使用以下命令为新创建的用户提供所有rds超级用户访问权限
GRANT rds_superuser TO ziggy;
用您的rds超级用户替换 rds_superuser 。
答案 2 :(得分:0)
您还需要在SCHEMA上授予使用权,例如
GRANT USAGE ON SCHEMA public TO ziggy;