[pgsql-jp: 31299] pg_dumpでdatabaseのaclが出力されない

ISHIDA Akio iakio @ pjam.jpweb.net
2003年 10月 24日 (金) 15:30:41 JST


こんにちは。石田@苫小牧市です。

pg_dump で database の権限情報が出力されないようです。
(GRANT ... ON DATABASE ...で設定する権限)
そのため、以下のようにデータベースの所有者以外で
create scheme して、pg_dump した場合、
ダンプしたファイルからリストアしようとするとエラーに
なってしまします。

うまい回避方法はないでしょうか?
postgresql のバージョンは 7.3.3 です。

以下、実行例です。

% cat test1.sql
DROP DATABASE d1;
DROP USER u1;
DROP USER u2;

CREATE USER u1 CREATEDB;
CREATE USER u2;
CREATE DATABASE d1 OWNER u1;
\connect d1 u1
GRANT CREATE ON DATABASE d1 TO u2;
\connect - u2
CREATE SCHEMA s2;

% psql -f test1.sql template1
DROP USER
DROP USER
CREATE USER
CREATE USER
CREATE DATABASE
You are now connected to database d1 as user u1.
GRANT
You are now connected as new user u2.
CREATE SCHEMA
% pg_dump -C -f test1.dump d1
% cat test1.dump
--
-- PostgreSQL database dump
--

\connect - u1

--
-- TOC entry 1 (OID 0)
-- Name: d1; Type: DATABASE; Schema: -; Owner: u1
--

CREATE DATABASE d1 WITH TEMPLATE = template0 ENCODING = 0;


\connect d1 u1

\connect - u2

--
-- TOC entry 2 (OID 2658456)
-- Name: s2; Type: SCHEMA; Schema: -; Owner: u2
--

CREATE SCHEMA s2;


% dropdb d1
DROP DATABASE
% psql -f test1.dump template1
You are now connected as new user u1.
CREATE DATABASE
You are now connected to database d1 as user u1.
You are now connected as new user u2.
psql:test1.dump:24: ERROR:  d1: permission denied


--
ISHIDA Akio<iakio @ pjam.jpweb.net>






pgsql-jp メーリングリストの案内