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