QuickSight에서 PostgreSQL RDS 데이터 세트를 생성할때 발생하는 GENERIC_SQL_EXCEPTION 오류 해결

2024.03.05

QuickSight에서 PostgreSQL RDS의 데이트 세트를 생성할 때 아래와 같은 에러가 발생하는 경우가 있습니다.

본 블로그에서는 이와 같은 에러를 해결하는 방법에 대해 소개하고자 합니다.

에러 내용

QuickSight와 RDS의 연결을 위한 설정을 마치고 데이터 세트를 만들기 위해 액세스를 시도하면 다음과 같은 에러가 발생합니다.

sourceErrorCode: GENERIC_SQL_EXCEPTION

sourceErrorMessage: The authentication type 10 is not supported. Check that you have configured the pg_hba.conf file to include the client's IP address or subnet, and that it is using an authentication scheme supported by the driver.

원인

위와 같은 에러는 QuickSight 와 Postgre RDS의 비밀번호 암호화 알고리즘의 차이로 인해 발생하는 에러입니다.

PostgreSQL 14 이상의 경우 scram-sha-256 암호화 알고리즘을 사용하지만, QuickSight는 MD5 알고리즘을 사용하기 때문에 접속시 에러가 발생하는 것입니다.

이는 QuickSight가 사용하는 JDBC 42.0 드라이버가 MD5 알고리즘을 지원하기 때문이며 Postgres DB 의 비밀번호 암호화 파라미터 값을 MD5로 설정하는 것으로 해결할 수 있습니다.

실제로 DB에 접속해보면 암호화 알고리즘이 scram-sha-256로 설정되어 있는 것을 확인하실 수 있습니다.

SHOW password_encryption;

 password_encryption 
---------------------
 scram-sha-256
(1 row)

또한, DB 유저도 scram-sha-256 를 사용하고 있는 것을 보실 수 있습니다.

SELECT * FROM rds_tools.role_password_encryption_type();

 pg_database_owner           | 
 pg_read_all_data            | 
 pg_write_all_data           | 
 pg_monitor                  | 
 pg_read_all_settings        | 
 pg_read_all_stats           | 
 pg_stat_scan_tables         | 
 pg_signal_backend           | 
 pg_checkpoint               | 
 pg_use_reserved_connections | 
 pg_create_subscription      | 
 postgres                    | scram-sha-256

해결 방법

직접 관리자 권한의 유저로 DB에 접속한 뒤, 암호화 알고리즘 파라미터를 MD5로 설정합니다. 그리고 QuickSight가 사용할 유저를 다시 생성해주는 것으로 해결할 수 있습니다.

/* 암호화 알고리즘을 MD5로 설정합니다 */
SET password_encryption = 'md5';

/* QuickSight가 사용할 유저를 생성합니다 */
CREATE 유저명 WITH PASSWORD '비밀번호';

/* 해당 유저에 적절한 권한을 부여합니다 */
GRANT CONNECT ON DATABASE 데이터베이스명 TO 유저명;

설정을 마친 후 DB와 유저의 비밀번호 암호화 파라미터가 MD5로 설정 되어있는 것을 확인할 수 있습니다.

생성된 유저의 파라미터 값이 MD5인 것을 확인해주세요. 만약 MD5가 아니거나 아무것도 표시 되어 있지 않다면, 같은 에러가 발생합니다.

  • DB의 암호화 방식 설정값
SHOW password_encryption;

 password_encryption 
---------------------
 md5
(1 row)
  • 유저의 암호화 방식 설정값
SELECT * FROM rds_tools.role_password_encryption_type();
 pg_database_owner           | 
 pg_read_all_data            | 
 pg_write_all_data           | 
 pg_monitor                  | 
 pg_read_all_settings        | 
 pg_read_all_stats           | 
 pg_stat_scan_tables         | 
 pg_signal_backend           | 
 pg_checkpoint               | 
 pg_use_reserved_connections | 
 pg_create_subscription      | 
 postgres                    | scram-sha-256
 user_qs                     | md5

설정을 마친 후, QuickSight 대시보드로 이동하여 새롭게 생성된 유저를 사용한 접속 확인을 진행합니다.

확인이 성공하면 데이터 세트를 작성할 수 있습니다.

끝으로

이번 오류의 경우, 비밀번호의 암호화 알고리즘이 원인이었습니다.

이러한 오류 뿐만 아니라 유저에게 적절한 권한이 부여되지 않아 발생하는 경우도 빈번하기 때문에, 새로운 유저를 생성할 때 필요한 권한을 부여하는 것을 잘 확인해주세요.

참조