2017-11-03 8 views
0

postgresql om azureにデータベースサービスを使用しているときに、カスタムテンプレートデータベースを作成できないように見えます。azure postgresqlサービスでデータベーステンプレートを作成する方法

私が達成したいのは、普通のアカウントで、csnは特定の拡張機能を有効にした新しいデータベースを作成することです。 作成は委任できますが、初期データベース管理アカウント以外のすべてのテストで拡張機能の有効化が失敗します。

+0

私はAzureサービスについて知らないけど、Postgresを使って_any_データベースをテンプレートとして使うことができます。それをテンプレートデータベースとしてマークする必要はありません。唯一の制限は、複製する場合、ソースデータベースに接続が許可されないことです。 –

+0

ありがとう、それが私のために働くかどうかを確認します – Wouter

+0

Azureは、通常のデータベースをテンプレートとして使用することを許可していません。彼らはパーミッションシステムの一部を変更しましたが、何がうまくいかなければならないかについてのドキュメントは見つかりませんでした。 – Wouter

答えて

0

私はAzureデータベースfor PostgreSQLで次のことを試してみました。それが機能しました(Azureの手順を順を追って説明してください)。 AzureのCLI(bashの)followed steps in Quick Start for Azure PostgreSQL

  1. それにPGサーバーを作成>新しいリソース・グループを作成するには>そのPGサーバー上で新しいDB(originaldb)を作成します。すべてうまくいった。
  2. 次に、私は、orginaldb(手順1で作成したDB)のearthdistanceとcube(earthdistanceの前要求)拡張を有効にしました。
  3. 次に、orginaldbをテンプレートとして使用して別のDB(dbclone)を作成するCLIを使用しました。 CREATE DATABASE dbclone TEMPLATE originaldb; dbclone DBではキューブと地球距離の拡張機能が有効に機能しています。
  4. 他のPGユーザーと一緒に試してみる:私はPGユーザー(user1)を作成し、このユーザーDB作成権限を与えました。
  5. 次に、自分のサーバーにuser1としてログオンし、同じコマンドを使用してCLIから別のDBを作成しました。 CREATE DATABASE dbclone2 TEMPLATE originaldb; それも働いて、私はキューブとearthdistanceの拡張機能がdbclone2データベースで有効になって参照してください。

これはあなたがやろうとしていることですか?あなたは同じステップを踏んでエラーを叩いているのですか、あるいは何か違うことをしようとしていますか?

+0

それはおおよそ私がやったことです。 1.次のコマンドを使用してデータベースを作成します。CREATE DATABASE my_template LC_COLLATE 'en-US' LC_CTYPE 'en-US' ENCODING 'UTF8' TEMPLATE template0; 2. \ c my_template(同じセッション)を介してそのデータベースに接続され、CREATE EXTENSION tablefuncと呼ばれます。 3.データベースを作成できるユーザーとセッションを作成し、コマンドを試してみましよう。CREATE DATABASE sub TEMPLATE my_template; 3.データベース「my_template」をコピーするために「ERROR permission deny」が発生しました。 – Wouter

+0

私は最終的に私が行ったことが異なっていました。 メインのpostgres管理者アカウントを使用して、(create roleとcreate dbの権限のみを使用して)サブ管理アカウントを作成します。 その役割を使用して、上記の手順を実行できます。 しかし、このロールを使用して、新しいロールを作成します。 clientdb。このユーザーはmy_templateデータベースにアクセスできません。 my_templateデータベースが 'subadmin'によって作成されても、作成することはできません。主な違いは、clientdbロールは、subadminが実行できる間に新しいロールを作成できないことです。これは@NikLarinMSFTの意味を持ちますか? – Wouter

+0

はい、あります。私が知る限り、AzureのPostgreSQL特有のものではありませんが、どのPostgresでも同じです。ローカルにインストールされたインスタンス – NikLarinMSFT

関連する問題