[解決済み] PostgreSQLでグループロールにデータベース内の特定のスキーマをすべて許可する。
質問
PostgreSQL 9.0 を使用して、"staff" というグループロールを持っており、特定のスキーマ内のテーブルのすべて(または特定の)権限をこのロールに付与したいと考えています。以下のいずれも動作しません。
GRANT ALL ON SCHEMA foo TO staff;
GRANT ALL ON DATABASE mydb TO staff;
staff" のメンバーは、スキーマ "foo" 内の個々のテーブル、または (2番目のコマンドの場合) データベース内の任意のテーブルに対して SELECT または UPDATE を行うことがまだできない状態です。 ただし その特定のテーブルのすべてを許可します。
私やユーザーの生活を楽にするためにはどうしたらよいでしょうか。
アップデートしてください。 の助けを借りて解決しました。 serverfault.comの同様の質問 .
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA foo TO staff;
どのように解決するのですか?
あなたは、すべての 既存の テーブルの権限を設定する省略記法を見つけました。 マニュアルでは、以下のように明確にされています。 :
<ブロッククオート
(ただし
ALL TABLES
を含むとみなされます。
ビュー
と
外部テーブル
).
太字強調は私です。
serial
のカラムが実装されています。
nextval()
をカラムのデフォルトとしてシーケンス上に実装し
はマニュアルを引用して
:
シーケンスの場合、この権限で
currval
と
nextval
という関数があります。
ということで、もし
serial
カラムがある場合、そのカラムに
USAGE
(または
ALL PRIVILEGES
) の上に
シーケンス
GRANT USAGE ON ALL SEQUENCES IN SCHEMA foo TO mygrp;
注意
アイデンティティ・カラム
は暗黙的なシーケンスを使用するため、追加特権は必要ありません(Postgres 10以降ではアップグレードを検討してください)。(アップグレードを検討する
serial
列のアップグレードを検討してください)。
についてはどうでしょうか。 新しい オブジェクトはどうなるのでしょうか?
こちらもどうぞ
DEFAULT PRIVILEGES
ユーザーまたはスキーマの場合
:
ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT ALL PRIVILEGES ON TABLES TO staff;
ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT USAGE ON SEQUENCES TO staff;
ALTER DEFAULT PRIVILEGES IN SCHEMA foo REVOKE ...;
これは、将来作成されるオブジェクトの権限を自動的に設定します - ただし、既存のオブジェクトには設定されません。
デフォルトの特権は
のみです。
は、対象となるユーザが作成したオブジェクトに適用されます (
FOR ROLE my_creating_role
). この節が省略された場合、デフォルトでは、現在のユーザが実行する
ALTER DEFAULT PRIVILEGES
. 明示的にするために
ALTER DEFAULT PRIVILEGES FOR ROLE my_creating_role IN SCHEMA foo GRANT ...;
ALTER DEFAULT PRIVILEGES FOR ROLE my_creating_role IN SCHEMA foo REVOKE ...;
また、pgAdmin III のすべてのバージョンには、微妙なバグがあり
表示
デフォルトの権限をSQLペインに表示します。必ず
FOR ROLE
節を手動で調整してください。
関連
-
GROUP BY句での定数使用に関するPostgreSQLの特別な制限について説明します。
-
PostgreSQLがバキュームテーブルの情報を収集する必要があることを発見する方法
-
PostgreSQLの自己インクリメント構文使用上の注意点
-
[解決済み] PostgreSQLの場合。PostgreSQLのテーブルを表示する
-
[解決済み] HTMLの "role "属性は何のためにあるのですか?
-
[解決済み] PostgreSQL は設定/conf ファイルをどこに保存しますか?
-
[解決済み] Postgres の全テーブルの行数を求めるには?
-
[解決済み] psqlの代替出力フォーマット
-
[解決済み】PostgreSQLのエラーです。Fatal: ロール "username" が存在しません。
-
[解決済み] PostgreSQLでタイムスタンプの差を秒単位で求める
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
単語をソートするカスタム関数とそれをPostgreSQLで使用する(実装コード)
-
PostgresqlのデータベーステーブルのデータをExcel形式にエクスポートする方法(推奨)
-
Postgresqlの操作でSQL文の実行効率を表示する
-
PostgreSQLの自己インクリメント構文使用上の注意点
-
PostgreSQLにおけるVACUUMコマンドの使用方法
-
[解決済み] Postgres / PostgreSQLのテーブルとインデックスのディスクサイズはどのように見つけるのですか?
-
[解決済み] varcharフィールドの型をintegerに変更する。"自動的にinteger型にキャストすることはできません"
-
[解決済み] PostgreSQL用GUIツール【終了】のお知らせ
-
[解決済み] GRANT USAGE ON SCHEMAとは具体的に何をするのですか?
-
[解決済み] PostgreSQLにデータベースが存在するかどうかをシェルで確認する