Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 在没有所有者信息的情况下使用pg_dump仍输出角色信息_Postgresql_Pg Dump - Fatal编程技术网

Postgresql 在没有所有者信息的情况下使用pg_dump仍输出角色信息

Postgresql 在没有所有者信息的情况下使用pg_dump仍输出角色信息,postgresql,pg-dump,Postgresql,Pg Dump,我使用pg_dump-O-x转储了一个数据库,希望忽略所有的所有权和角色信息,但是,它仍然包括对原始数据库中经理角色的特定提及,这些角色无法导入,因为它们在我导入的新数据库中不存在。请参阅dump.sql文件的片段: -- -- Name: reassign_owned(); Type: FUNCTION; Schema: public; Owner: - -- CREATE FUNCTION reassign_owned() RETURNS event_trigger LANGUAG

我使用
pg_dump-O-x
转储了一个数据库,希望忽略所有的所有权和角色信息,但是,它仍然包括对原始数据库中经理角色的特定提及,这些角色无法导入,因为它们在我导入的新数据库中不存在。请参阅dump.sql文件的片段:

--
-- Name: reassign_owned(); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION reassign_owned() RETURNS event_trigger
    LANGUAGE plpgsql
    AS $$
        begin
                -- do not execute if member of rds_superuser
                IF EXISTS (select 1 from pg_catalog.pg_roles where rolname = 'rds_superuser')
                AND pg_has_role(current_user, 'rds_superuser', 'member') THEN
                        RETURN;
                END IF;

                -- do not execute if not member of manager role
                IF NOT pg_has_role(current_user, 'rdsbroker_xxxxx_manager', 'member') THEN
                        RETURN;
                END IF;

                -- do not execute if superuser
                IF EXISTS (SELECT 1 FROM pg_user WHERE usename = current_user and usesuper = true) THEN
                        RETURN;
                END IF;

                EXECUTE 'reassign owned by "' || current_user || '" to "rdsbroker_xxxxx_manager"';
        end
        $$;

我在pg_dump和pg_restore源代码中进行了快速搜索,没有看到重新分配所有者语句的用法。

我在pg_dump和pg_restore源代码中进行了快速搜索,没有看到重新分配所有者语句的用法。

-O
意味着pg_dump本身不会发出所有权信息。它不会导致它编辑它可能转储的任何函数的源代码,试图阻止这些函数执行它们编写时要执行的操作。

-O
表示pg_转储本身不会发出所有权信息。它不会导致它编辑它可能转储的任何函数的源代码,试图阻止这些函数执行它们编写的操作。

是否以纯文本格式运行pg_dump?您是否将-O用于pg_转储和/或pg_还原?它作为纯文本文件转储,还原不使用pg_还原。目前这是我唯一的选择。这是AWS RDS实例吗?它看起来像是AWS特有的功能。它确实是一个AWS RDS实例,我不确定是否有任何配置可以禁用它。您是否以纯文本格式运行pg_dump?您是否将-O用于pg_转储和/或pg_还原?它作为纯文本文件转储,还原不使用pg_还原。目前这是我唯一的选择。这是AWS RDS实例吗?它看起来像是AWS特有的功能。它确实是一个AWS RDS实例,我不确定是否有任何配置可以禁用它。