ユーザーfooがデータベースgeeを所有し、ユーザーfooがユーザーbarにデータベースgeeに対するすべてのアクセス権限を付与したとします。
gee=> \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
gee | foo | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/foo +
| | | | | foo=CTc/foo +
| | | | | bar=CTc/foo
このデータベースをダンプします
$ pg_dump -U foo -v -f gee.dump gee
データベースでは、ユーザーバーがスキーマを作成しました。したがって、これらすべてのユーザーがデータベースgeeをユーザーpostgresとして復元するため(ユーザーfooがデータベースgooを作成した後)、
$ Sudo -u postgres psql -d goo -f gee.dump
ユーザーバーには、データベースgooに対するアクセス権限がありません。しかし、データベースgoo内では、すべてのユーザーにとって、スキーマとテーブルに対するすべての特権はOKです。
goo=> \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
goo | foo | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
データベース自体へのアクセス権限が復元されないのはなぜですか?
データベース自体へのアクセス権限が復元されないのはなぜですか?
これはバグ、または設計の監視です 。そのレポートへの対応者はそうは思わないが。
pg_dumpall --globals-only
は、データベースの権限をダンプしません。また、データベースダンプの一部としてpg_dump
も行いません。
したがって、データベースへの付与は完全なpg_dumpall
にのみ含まれます。
私は this thread を突っ込むことによってそれについていくつかのノイズを作ります。