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

KOBAYASHI Takashi t-kobayashi @ organ-ndl.co.jp
2020年 9月 22日 (火) 08:36:08 UTC


板山様

返信が遅くなってしまい、申し訳ございません。
ご教示を賜り、誠に有難うございます。

> 拡張をインストールする(CREATE EXTENSION)と、ものによって、テーブル等のオ
ブジェクトを作成する場合があると思います。
今回の案件では拡張のインストールはないため、この点に関しては問題ないものと考
えております。

> publicスキーマのみリストアしたいというご質問は、何か足りないものがある、と
いう理由なのでしょうか。
BIツールで使用しているPostgreSQLに、業務システムで使用している他のPostgreSQL
のデータをリストアしてBIツールにて活用したいのですが、一部の業務システムで
publicスキーマを使用しており、他のスキーマ名に変更することも難しいため、今回
の質問に至りました。

> また、publicは CVE-2018-1058等の脆弱性が見付かっているため、
セキュリティの観点からpublicは使用しないほうが良いのですね。今後開発する案件
についてはpublicではない別のスキーマを作成して使用するように致します。



-----Original Message-----
From: 板山 <itayama-k @ evoltech.co.jp>
Sent: Thursday, September 17, 2020 10:00 PM
To: PostgreSQL Japanese Mailing List <pgsql-jp @ ml.postgresql.jp>; 小林 崇史
| KOBAYASHI Takashi <t-kobayashi @ organ-ndl.co.jp>; 'FUKUSHIMA Katsuaki'
<kfukushima @ sis.seino.co.jp>
Subject: Re: publicスキーマについて

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

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 メーリングリストの案内