[pgsql-jp: 41964] Re: pg_restoreについて

sato y_sato_priv @ yahoo.co.jp
2017年 9月 11日 (月) 21:14:10 JST


澤田さん

情報提供ありがとうございます

ネットではそれなりに調べたつもりだったのですが、
この情報は初めて読みました。

おかげ様で無事解決することができました。
ありがとうございます!


On 2017/09/11 12:17, Masahiko Sawada wrote:
> 澤田と申します。
>
> 2017年9月11日 9:47 TAKATSUKA Haruka <harukat @ postgresql.jp>:
>> 高塚です。
>>
>> 確かに下記の振る舞いが起こりますね。
>>
>> pubicスキーマから、誰でも利用可能とする「=UC」の権限指定が消えてしまいます。
>>
>> db1=# SELECT * FROM pg_namespace ;
>>        nspname       | nspowner |               nspacl
>> --------------------+----------+------------------------------------
>>   pg_toast           |       10 |
>>   pg_temp_1          |       10 |
>>   pg_toast_temp_1    |       10 |
>>   pg_catalog         |       10 | {postgres=UC/postgres,=U/postgres}
>>   information_schema |       10 | {postgres=UC/postgres,=U/postgres}
>>   public             |       10 |
>> (6 rows)
>>
>> こうなっていないといけません。
>>
>>   public             |       10 | {postgres=UC/postgres,=UC/postgres}
>>
>> とりあえず GRANT ALL ON SCHEMA public TO public;
>> で復旧できるはずです。
>>
>> 以下の手順だと、元からある public スキーマについて、
>>   DROP SCHEMA IF EXISTS public;
>>   CREATE SCHEMA public;
>> を行うけれども、GRANT が行われません。
>>
>> バグであろうかと考えられます。
> こちらの事象ですが、最近PostgreSQLコミュニティにも報告されています。
> # 9.6.3からのバグです。
> <https://www.postgresql.org/message-id/20170821104439.1455.12525%40wrigleys.postgresql.org>
>
> パッチも作って投稿しているので、じきに修正されると思います。
>
> 9.6.3以降でのワークアラウンドとしては、(-Fcだとしても)pg_dumpに-cオプションを
> つけるとで、pg_restore時にGRANT ALL ON SCHEMA public TO PUBLIC;
> が実行されると思います。
> # 本来pg_dumpの-cオプションは-Fcのときには影響しないと
> # なっていますが、これも不具合で、9.6.3以降は影響するようになっています。
>
> 以上です。
>


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