我需要授予主用户(MasterUsername)访问pg_catalog的权限。
GRANT USAGE ON SCHEMA pg_catalog TO <master-user>;
运行此操作时,我收到以下警告: 警告:没有为&#34; pg_catalog&#34;。
授予任何权限基本上,我有一个自动化脚本,我在其中创建数据库,我设置了搜索路径,并且:
SET search_path = <my-schema>, pg_catalog;
CREATE TYPE <type> AS (
id bigint,
name character varying);
我得到以下错误
Caused by: org.postgresql.util.PSQLException: ERROR: permission denied for schema pg_catalog
基本上,它不允许我创建类型,因为pg_type表存在于pg_catalog中。如何创建类型?
我不知道授予USAGE权利是否会有所帮助?如果还有其他解决方法,请告诉我。
答案 0 :(得分:1)
授予使用权限只会让您能够访问架构的对象,创建新对象将需要在该架构上创建权限。
答案 1 :(得分:0)
我解决这个问题的方式非常简单,我使用postgres
创建了一个角色CREATE ROLE postgres
,我将其分配给了我的用户。
添加到SET search_path=public,<database>
将此分配给我的用户实际上为我提供了创建自定义pg_type
所需的所有权限,在公共模式中使用模式pg_catalog
。这有用吗?我不知道,可能是postgres的家伙可以回答这个问题吗?或者AWS RDS的人可以回答这个问题。
其次,我在使用pg_functions
和扩展Postgis的功能方面遇到了另一个问题,即使通过将角色postgres
角色添加到需要访问该功能的用户来解决它们。
我仍然认为这是一种解决方法,而不是直接修复,或者可能是修复,但应该有一些文档(我没有找到)。