Amazon Redshift 클러스터의 시스템 테이블에서 다른 사용자가 생성한 데이터를 볼 수 없습니다. 테이블을 어떻게 볼 수 있나요?
간략한 설명
기본적으로 Amazon Redshift 일반 사용자에게는 다른 사용자의 데이터를 볼 권한이 없습니다. Amazon Redshift 데이터베이스 수퍼유저만 모든 데이터베이스를 볼 수 있는 권한이 있습니다.
해결 방법
일반 사용자가 시스템 테이블에서 다른 사용자가 생성한 데이터를 볼 수 있도록 무제한 액세스 권한이 있는 SYSLOG ACCESS 파라미터를 추가할 수 있습니다.
참고: SYSLOG ACCESS를 사용하는 일반 사용자는 수퍼유저 테이블을 볼 수 없습니다. 수퍼유저만 다른 수퍼유저 테이블을 볼 수 있습니다.
1. 수퍼유저 자격으로 Amazon Redshift 데이터베이스에 연결합니다.
2. 다음과 유사한 SQL 명령 ALTER USER를 실행합니다.
test=# ALTER USER testuser WITH SYSLOG ACCESS UNRESTRICTED;
ALTER USER
참고: ALTER USER에게 필요한 권한은 수퍼유저, ALTER USER 권한이 있는 사용자 및 자신의 비밀번호를 변경하려는 사용자입니다.
이제 일반 사용자에게는 무제한 액세스 권한이 있는 SYSLOG ACCESS가 있습니다.
3. 수퍼유저 자격으로 Amazon Redshift 데이터베이스와의 연결을 끊습니다.
4. 무제한 액세스 권한이 있는 SYSLOG ACCESS가 있는 일반 사용자로 Amazon Redshift 데이터베이스에 연결합니다.
5. 다음과 유사한 SQL 명령을 실행하여 일반 사용자 액세스를 테스트합니다.
test=> select * from stv_inflight;
-[ 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
예제 출력에서 일반 사용자는 이제 다른 사용자 테이블을 볼 수 있습니다.