私は同じスキーマのpostgreSqlでスーパーユーザから2つのロールを作成しました。PostgreSQL:別のユーザが所有するテーブルへのアクセス
1))
2をread_only_with_create_viewその後、私はそれぞれの役割から二人のユーザーを作成した
をREAD_WRITE。 (read_only_with_create_view_userとread_write)
read_only_with_create_view_userによって作成された新しいビューは、ビューの所有者が異なるため、read_write_userによってアクセスできません(read_only_with_create_view_user)。
だから、read_write_userによってすべての新しいビューにアクセスする方法は何ですか?
基本的に私が達成しようとしているのは、あるユーザーによって作成されたすべてが別のユーザーがアクセスできるものであることです。
手順私が続く:
CREATE ROLE read_only_role WITH
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity';
GRANT CONNECT ON DATABASE mydb to read_only_role;
GRANT USAGE,CREATE ON SCHEMA myschema TO read_only_role;
GRANT SELECT ON ALL TABLES IN SCHEMA myschema TO read_only_role;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA myschema TO read_only_role;
CREATE USER read_only_with_create_view_user
WITH PASSWORD '*****'
in ROLE read_only_role;
-- Now created new views using this role. That means read_only_with_create_view_user is owner of those views.
-- Creating new read-write role.
CREATE ROLE rw_role WITH
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity' IN ROLE read_only_role;
GRANT CONNECT ON DATABASE mydb to rw_role;
GRANT USAGE ON SCHEMA myschema TO crn_rw_role_qa;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA myschema TO rw_role;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA myschema TO rw_role;
CREATE USER read_write_user
WITH PASSWORD '*****'
in role rw_role;
So after login with read_write_user when I try to access new views created by read_only_with_create_view_user, I get below error
ERROR: permission denied for relation view_name
********** Error **********
ERROR: permission denied for relation view_name
SQL state: 42501
おかげで、
ヒマンシュ
役割を作成しながら、私はすでにそのように試してみました"create role .... in role ...."という構文では、read_only_with_create_view_userによって作成された新しいビューにはread_write_userによってアクセスできません。 ERROR:関係view_nameの権限が拒否されました。 ***************************** エラー:関係ビュー名に対する権限が拒否されています SQLの状態:42501 –
試み。質問をあなたが発行したコマンドで更新してください。 –
また、ロールに 'INHERIT'属性があるかどうかを確認してください。 –