3-2와 같이 테이블 스키마 권한을 부여했지만 select시 없는 테이블로 나옴.
ERROR: relation "ods.test" does not exist LINE 2: from "ods".test ^ SQL state: 42P01 Character: 20
SQL state : 42P01
ERROR: permission denied for schema mart
SQL state: 42501
아래와 같이 권한 부여에도 테이블 조회가 되지 않는다.
GRANT SELECT ON ALL TABLES IN SCHEMA ods TO adbuser;
/*권한부여된 테이블 조회하기*/
select table_schema, table_name
from information_schema.tables
where not table_schema='pg_catalog'
and not table_schema='information_schema';
★ 해당문제를 팀원과 같이 알아보던중 해결책을 찾을 수 있었다.
------------------------------------------------------------------------------------------------
GRANT USAGE ON SCHEMA <schema_name> TO <db_user>;
GRANT USAGE ON SCHEMA <schema_name> TO <db_user>;
------------------------------------------------------------------------------------------------
해당 구문을 실행하여... 스키마를 사용 할 수 있는 권한을 부여해줘야 한다.
분명이 table select등 권한을 부여했음에도 또 저런 구문을 이용하여 줘야 되는지? 의문이 들었다.
이 부분은 기존에 GRANT SELELC ON~ 명령이 스키마안의 테이블에 대한 권한을 부여하는거라면 스키마 자체또한 객체로 보고, 해당 객체(스키마)에도 접속할 수 있는 액세스 권한을 부여하여야 하기에 GRANT USAGE ON SCHEMA 명령을 사용해야 되는걸로 확인되었다.
※ 여러 MS Azure Doc사이트 문서, 인터넷 검색등을 통해서도 저부분까지 표기되어 있는부분이 별로 없었다.
실제 테스트를 기본적으로 제공되는 'public' 스키마를 써서 할텐데 이 경우 아마 디폴트로 'public'스키마는
사용자(role)을 생성시 기본으로 객체 권한이 부여되는듯 하다. 그러므로 해당 명령수행을 놓치걸로 판단된다.
'MS Azure Log > Azure PostgreSQL' 카테고리의 다른 글
4-1. Azure PostgreSQL Procedure(프로시저) 만들기 (0) | 2023.01.12 |
---|---|
2-9. Azure PostgreSQL Data Type vs MS-SQL 비교 (0) | 2023.01.05 |
3-2. Azure PostgreSQL 사용자(User/Role) 만들기 (0) | 2023.01.02 |
3-1. Azure PostgreSQL 스키마(Schema) 관리 (0) | 2023.01.02 |
2-2. Azure PostgreSQL Data Type - 자동증가형식 (0) | 2023.01.02 |