タグ付けされた質問 「database-permissions」

5
PostgreSQL:それぞれ1つのスキーマを持つ複数のデータベース、または複数のスキーマを持つ1つのデータベースを使用する方が良いですか?
私の質問の1つに対するこのコメントの後、Xスキーマを備えた1つのデータベースを使用する方が良いのか、またはその逆なのかを考えています。 私の状況:登録時にデータベースを(実際には)作成するWebアプリケーションを開発しています(いいえ、それはソーシャルネットワークではありません:誰もが自分のデータにアクセスできなければならず、他のユーザーのデータを見ることはありません)。 。 これが、以前のバージョンのアプリケーション(まだMySQLで実行されている)で使用した方法です。PleskAPIを使用して、すべての登録に対して、次のことを行います。 制限付きの権限を持つデータベースユーザーを作成します。 前に作成したユーザーとスーパーユーザーだけがアクセスできるデータベースを作成します(メンテナンス用) データベースに入力する 今、私はPostgreSQLでも同じことをする必要があります(プロジェクトは成熟し、MySQLになっています...すべてのニーズを満たすわけではありません)。 すべてのデータベース/スキーマのバックアップを独立させる必要があります。pg_dumpは両方の方法で完全に機能し、1つのスキーマまたは1つのデータベースのみにアクセスするように構成できるユーザーにとっても同じです。 それで、あなたが私よりも経験豊富なPostgreSQLユーザーであると仮定すると、私の状況に最適なソリューションは何だと思いますか、そしてその理由は? $ xスキーマの代わりに$ xデータベースを使用するとパフォーマンスに違いがありますか?そして、どのソリューションが将来的に維持する方が良いでしょう(信頼性)? すべてのデータベース/スキーマは常に同じ構造になります! バックアップの問題(pg_dumpを使用)の場合、1つのデータベースと多くのスキーマを使用して、すべてのスキーマを一度にダンプする方が良いでしょう。回復は、開発マシンにメインダンプをロードして、必要なスキーマだけをダンプして復元することで非常に簡単です。これは1つの追加ステップですが、すべてのスキーマをダンプすると、1つずつダンプするよりも高速に見えます。 アップデート2012 さて、この2年間で、アプリケーションの構造とデザインは大きく変化しました。私はまだこのone db with many schemasアプローチを使用していますが、アプリケーションのバージョンごとに 1つのデータベースがあります。 Db myapp_01 \_ my_customer_foo_schema \_ my_customer_bar_schema Db myapp_02 \_ my_customer_foo_schema \_ my_customer_bar_schema バックアップについては、各データベースを定期的にダンプし、バックアップを開発サーバーに移動しています。 私はPITR / WALバックアップも使用していますが、前に述べたように、すべてのデータベースを一度に復元する必要はほとんどないので、おそらく今年は却下されます(私の状況では最善のアプローチではありません) )。 アプリケーションの構造が完全に変更されていても、one-db-many-schemaアプローチは今から非常にうまく機能しました。 私はほとんど忘れてしまいました:すべてのデータベース/スキーマは常に同じ構造になります! ...すべてのスキーマには、ユーザーのデータフローに応じて動的に変化する独自の構造があります。

3
スキーマでのGRANT USAGEは正確に何をしますか?
私は初めてPostgresデータベースを作成しようとしているので、これはおそらく愚かな質問です。PHPロールからデータベースにアクセスする必要がある基本的な読み取り専用権限をdbロールに割り当てましたが、好奇心があります。実行した場合 GRANT some_or_all_privileges ON ALL TABLES IN SCHEMA schema TO role; また実行する必要がありますか GRANT USAGE ON SCHEMA schema TO role; ? ドキュメントから: 使用法:スキーマの場合、指定されたスキーマに含まれるオブジェクトへのアクセスを許可します(オブジェクト自体の特権要件も満たされていることを前提とします)。基本的に、これにより、権限受領者はスキーマ内のオブジェクトを「検索」できます。 スキーマに含まれるデータを選択または操作できれば、スキーマ自体のオブジェクトにアクセスできると思います。私が間違っている?そうでない場合、何GRANT USAGE ON SCHEMAに使用されますか?また、「オブジェクト自体の特権要件も満たされていると想定して」というドキュメントの正確な意味は何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.