[pgsql-jp: 42053] Re: publicスキーマについて

板山 itayama-k @ evoltech.co.jp
2020年 9月 17日 (木) 13:00:10 UTC


板山と申します。
すみません、補足させて頂きます。

PostgreSQLは、ユーザ作成時、スキーマを自動的に作成しません。
そのためかもしれませんが、publicというスキーマが用意されています。

特に注意すべきは、管理者だと思います。
管理者は、スキーマを作成しない場合もあるかと思います。

拡張をインストールする(CREATE EXTENSION)と、
ものによって、テーブル等のオブジェクトを作成する場合があると思います。

以下のSQLで返されるスキーマに作成されます。
select current_schema();

スキーマを作成していない場合、
publicにオブジェクトが作成されているかもしれません。


 > publicスキーマのみリストアしたい
というご質問は、何か足りないものがある、という理由なのでしょうか。

2台はマイナーバージョン含め、同じバージョンなのでしょうか。

あまりないとは思いますが、
CREATE EXTENSIONは、バージョンを指定することも可能です。


また、publicは CVE-2018-1058等の脆弱性が見付かっているため、
postgresql.confの設定を以下へ変更し、
publicは使用しないようにしています。

search_path = '"$user"'


デフォルトだと以下になっているため、
ユーザと同名のスキーマが無い場合、別途search_pathを設定しない限り、
publicを使用することになります。
search_path = '"$user",public'



On 2020/09/17 12:26, 小林 崇史 | KOBAYASHI Takashi wrote:
> 福島様
> 
> 早速の返信ありがとうございます。
> publicスキーマを操作しても問題ないとのこと、安心いたしました。
> 大変助かりました。有難うございました。
> 
> 
> 
> -----Original Message-----
> From: FUKUSHIMA Katsuaki <kfukushima @ sis.seino.co.jp>
> Sent: Thursday, September 17, 2020 11:53 AM
> To: PostgreSQL Japanese Mailing List <pgsql-jp @ ml.postgresql.jp>; 小林 崇史
> | KOBAYASHI Takashi <t-kobayashi @ organ-ndl.co.jp>
> Subject: Re: [pgsql-jp: 42049] publicスキーマについて
> 
> 小林さん
> 
> 福島です。
> 特に public schema に特別な情報が格納されているようなことはありませんの
> で安心してください。
> 
> うちの場合ですが、別の schema を作成して運用しており、public schema は削
> 除しておりますが問題が出たことはありません。
> 
> On 2020/09/17 11:25, 小林 崇史 | KOBAYASHI Takashi wrote:
>> 皆さんこんにちは、小林と申します。
>>
>> 初歩的なことで大変恐縮ですが、ご教示を賜りたく投稿致します。
>>
>> PostgreSQLをインストールするとpublicというスキーマが必ず作成されますが、この
>> スキーマはPostgreSQL全体を司る特別な情報が格納されていたりするのでしょうか?
>>
>> 実は、あるサーバーから別のサーバーにpg_restoreを使ってpublicスキーマのみリス
>> トアしたいのですが、上記のようなことがあるとPostgreSQLの動作に支障をきたすの
>> ではないかと恐れております。
>>
>> ご存じの方がいらっしゃいましたら、ご回答を頂きたく、お願い申し上げます。


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