동일한 스키마에서 postgreSql의 수퍼 유저로부터 두 개의 역할을 만들었습니다.PostgreSQL : 다른 사용자가 소유 한 테이블에 액세스
1)
2) 그런 다음 각 역할에서 두 명의 사용자를 만들었습니다
이제보기 소유자가 다르기 때문에 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
감사합니다,
Himanshu
는 이미 그 방법을 시도 "create role .... in role ...."구문을 사용하지만 read_only_with_create_view_user에 의해 생성 된 새로운보기에는 read_write_user가 액세스 할 수 없습니다. 오류 : 관계 뷰 이름에 대한 사용 권한이 거부되었습니다. ********** 오류 ********** 오류 : 관계 뷰 이름에 대한 사용 권한이 거부되었습니다. SQL 상태 : 42501 –
시도.발급 한 명령으로 질문을 업데이트하십시오. –
또한 역할에'INHERIT' 속성이 있는지 확인하십시오. –