5

postgis 拡張機能を使用する postgresql データベース「map」を作成するプロセスでCREATE EXTENSION postgis;、ユーザー「mapmaker」は次のエラーを受け取ります。

permission denied to create extension "postgis" 
HINT:  Must be superuser to create this extension. 

ただし、ユーザー「mapmaker」はsudo -u postgres psql、コマンドで指定されたデータベース所有者です。

CREATE DATABASE map OWNER mapmaker; 
GRANT ALL PRIVILEGES ON DATABASE map TO mapmaker; 

mapmaker がユーザーレベルでスーパーユーザーになると、エラーが表示されなくなり、拡張機能が作成されるので、postgres ユーザーを介して mapmaker の権限をスーパーユーザーに調整するだけでよいことを理解していますが、なぜこれがマップ作成者がデータベース マップに対するすべての権限を付与された場合は? 拡張機能の扱いは異なりますか? 拡張機能を使用するには、ユーザーはユーザー レベルのスーパーユーザーである必要がありますか、それともデータベース レベルで権限を割り当てることができますか?

スーパーユーザーの役割がないと拡張機能を作成できないことがわかりましたが、質問への回答では理由が説明されておらず、残念ながらコメントするのに十分なポイントがないため、質問です。

PostgreSQL 9.1.9 PostGIS 2.0.3

4

1 に答える 1