Amazon Redshift 사용자가 Amazon Redshift 클러스터의 시스템 테이블에서 다른 사용자가 생성한 데이터를 볼 수 있도록 허용하고 싶습니다.
해결 방법
기본적으로 Amazon Redshift 데이터베이스 슈퍼유저만 모든 데이터베이스를 볼 수 있는 권한을 갖습니다. 다른 사용자가 시스템 테이블에서 생성한 데이터를 보려면 UNRESTRICTED 액세스와 함께 SYSLOG ACCESS 파라미터를 추가합니다.
참고: SYSLOG ACCESS가 있는 사용자는 슈퍼유저 테이블을 볼 수 없습니다. 슈퍼유저만 다른 슈퍼유저 테이블을 볼 수 있습니다.
다음 단계를 완료합니다.
-
슈퍼유저로 Amazon Redshift 데이터베이스에 연결합니다.
-
SQL ALTER USER 명령을 실행합니다.
test=# ALTER USER testuser WITH SYSLOG ACCESS UNRESTRICTED;
ALTER USER
참고: testuser를 액세스 권한을 제공할 사용자 이름으로 바꾸십시오. 또한 ALTER USER에 대한 필수 권한을 참조하십시오.
-
슈퍼유저로 Amazon Redshift 데이터베이스에서 연결을 해제합니다.
-
UNRESTRICTED 액세스가 있는 SYSLOG ACCESS를 가진 사용자로 Amazon Redshift 데이터베이스에 연결합니다.
-
다음 명령을 실행하여 액세스를 테스트합니다.
test=> select * from stv_inflight;
다음 예제 출력은 UNRESTRICTED 액세스 권한을 부여한 사용자에게 이제 사용자 테이블을 볼 수 있는 액세스 권한이 있음을 보여줍니다.
-[ RECORD 1 ]--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
userid | 100
slice | 12811
query | 3036
label | default
xid | 35079530
pid | 1073746910
starttime | 2022-09-15 07:09:15.894317
text | select * from my_schema.dw_lu_tiers_test a, my_schema.dw_lu_tiers_test;
suspended | 0
insert_pristine | 0
concurrency_scaling_status | 0
-[ RECORD 2 ]--------------+---------------------------------------------------------------------------------------------------------------------------------------------------
userid | 181
slice | 12811
query | 3038
label | default
xid | 35079531
pid | 1073877909
starttime | 2022-09-15 07:09:17.694285
text | select * from stv_inflight;
suspended | 0
insert_pristine | 0
concurrency_scaling_status | 0