SYSTEM$GET_LOGIN_FAILURE_DETAILS
SYSTEM$GET_LOGIN_FAILURE_DETAILS
외부 OAuth, SAML 또는 키 쌍 인증과 연관된 실패한 로그인 시도를 나타내는 JSON 객체를 반환해요. JSON 객체에는 실패한 로그인 시도와 연관된 오류가 포함돼요.
본문
구문 (Syntax)
SYSTEM$GET_LOGIN_FAILURE_DETAILS('<uuid>')
인자 (Arguments)
uuid— UUID를 나타내는 문자열이에요. UUID는 외부 OAuth, SAML 또는 키 쌍 인증과 연관된 실패한 로그인 이벤트에서 반환된 오류 메시지 뒤에 나타나요.
반환 값 (Returns)
JSON 객체에서 다음 요소를 반환해요.
| 키 | 데이터 타입 | 값 설명 |
|---|---|---|
| clientIP | STRING | 실패한 로그인 요청이 발생한 IP 주소예요. 예: "10.211.55.1". |
| clientType | STRING | 클라이언트가 보고한 클라이언트 소프트웨어예요. 예: "JDBC_DRIVER". 이 값은 검증되지 않아요. 클라이언트가 이 값을 보고하지 않으면 값은 "OTHER"예요. |
| clientVersion | STRING | 클라이언트가 보고한 클라이언트 소프트웨어 버전이에요. 예: "2.9.0". 이 값은 검증되지 않아요. 클라이언트가 이 값을 보고하지 않으면 값은 null이에요. |
| username | STRING | 실패한 로그인 이벤트와 연관된 사용자 이름이에요. 시스템이 사용자 이름을 찾을 수 없거나 시스템이 사용자 이름을 찾기 전에 오류가 발생하면 값은 null이에요. |
| errorCode | STRING | 실패한 로그인 이벤트와 연관된 오류예요. 오류에 대한 설명은 외부 OAuth 오류, SAML 오류 또는 JWT 토큰 오류를 참고하세요. 오류가 OVERFLOW_FAILURE_EVENTS_ELIDED이면 실패한 로그인 시도 횟수가 너무 많은 거예요. |
| timestamp | NUMBER | 실패한 로그인 이벤트가 발생한 날짜와 시간(Unix 타임스탬프 형식)이에요. |
| errorDetails | ARRAY | 실패한 로그인 이벤트에 대한 상세한 컨텍스트를 제공하는 문자열의 JSON 배열이에요. 예: ["Audience mismatch: expected 'https://account.snowflakecomputing.com', got 'https://other.example.com'"]. 사용 가능한 상세 오류 정보가 없으면 값은 null이에요. |
사용 참고 (Usage Notes)
역할에 MONITOR 권한이 할당된 관리자만 이 함수를 사용할 수 있어요.
오류 설명 (Error Descriptions)
이 섹션은 SYSTEM$GET_LOGIN_FAILURE_DETAILS 함수가 반환한 오류에 대한 설명을 제공해요.
외부 OAuth 오류 (External OAuth Errors)
| 오류 | 설명 |
|---|---|
| EXTERNAL_OAUTH_INVALID_SIGNATURE | 서명 알고리즘이 잘못되었거나 서명 검증에 문제가 있어요. |
| EXTERNAL_OAUTH_MISSING_ISSUER | 액세스 토큰에서 발급자(iss 클레임)를 추출할 수 없어요. |
| EXTERNAL_OAUTH_JWS_INVALID_TYPE | 액세스 토큰의 유형이 잘못되었어요. |
| EXTERNAL_OAUTH_JWS_INVALID_FORMAT | 액세스 토큰 형식이 잘못되었어요. |
| EXTERNAL_OAUTH_ACCESS_TOKEN_ISSUER_NOT_FOUND | 발급자와 연관된 보안 통합을 찾을 수 없어요. |
| EXTERNAL_OAUTH_ACCESS_TOKEN_EXPIRED | 액세스 토큰이 만료되었어요. |
| EXTERNAL_OAUTH_MISSING_AUDIENCE | 액세스 토큰에서 대상(aud 클레임)을 추출할 수 없어요. |
| EXTERNAL_OAUTH_AUDIENCE_VALIDATION_FAILED | 액세스 토큰의 대상이 보안 통합에 정의된 대상 중 어느 것과도 일치하지 않아요. |
| EXTERNAL_OAUTH_ACCESS_TOKEN_ISSUER_NOT_ENABLED | 보안 통합이 비활성화되었어요. |
| EXTERNAL_OAUTH_JWS_CANT_RETRIEVE_PUBLIC_KEY | 액세스 토큰을 검증하기 위해 인증 서버에서 공개 키를 검색할 수 없어요. |
| EXTERNAL_OAUTH_USER_CLAIM_MISSING | 액세스 토큰에서 사용자 매핑 클레임을 추출할 수 없어요. |
| EXTERNAL_OAUTH_ACCESS_TOKEN_NOT_YET_VALID | 토큰이 아직 유효하지 않아요. iat 또는 nbf 클레임이 있는 타임스탬프는 토큰이 미래에 유효함을 나타내요. |
SAML 오류 (SAML Errors)
| 오류 코드 | 오류 | 설명 |
|---|---|---|
| 390133 | SAML_RESPONSE_INVALID | SAML 응답이 지정되지 않은 이유로 잘못되었는데, 대부분 형식이 잘못된 경우예요(파싱 오류가 있는 경우에도 사용됨). |
| 390165 | SAML_RESPONSE_INVALID_SIGNATURE | SAML 응답에 잘못된 서명(Signature)이 포함되어 있어요. |
| 390166 | SAML_RESPONSE_INVALID_DIGEST_METHOD | SAML 응답에 잘못된 “DigestMethod” 속성이 포함되어 있거나 이를 완전히 생략했어요. |
| 390167 | SAML_RESPONSE_INVALID_SIGNATURE_METHOD | SAML 응답에 잘못된 “SignatureMethod”가 포함되어 있거나 이를 완전히 생략했어요. |
| 390168 | SAML_RESPONSE_INVALID_DESTINATION | SAML 응답의 “Destination” 속성이 계정의 유효한 대상 URL과 일치하지 않아요. |
| 390169 | SAML_RESPONSE_INVALID_AUDIENCE | SAML 응답에 대상이 정확히 하나 포함되어 있지 않거나 대상 URL이 예상한 대상 URL과 일치하지 않아요. |
| 390170 | SAML_RESPONSE_INVALID_MISSING_INRESPONSETO | SAML 어설션에 “InResponseTo” 속성이 없어요. |
| 390171 | SAML_RESPONSE_INVALID_RECIPIENT_MISMATCH | “Recipient” 속성이 유효한 대상 URL과 일치하지 않아요. |
| 390172 | SAML_RESPONSE_INVALID_NOTONORAFTER_VALIDATION | 일반적으로 SAML 어설션이 유효한 시간이 만료되었음을 나타내요. |
| 390173 | SAML_RESPONSE_INVALID_NOTBEFORE_VALIDATION | 일반적으로 SAML 어션이 유효한 시간이 아직 시작되지 않았음을 나타내요. |
| 390174 | SAML_RESPONSE_INVALID_USERNAMES_MISMATCH | 재인증 중 로그인 이름이 일치하지 않아요. |
| 390175 | SAML_RESPONSE_INVALID_SESSIONID_MISSING | 재인증 중 사용자에 해당하는 세션을 찾을 수 없었어요. |
| 390176 | SAML_RESPONSE_INVALID_ACCOUNTS_MISMATCH | 재인증 중 계정 이름이 일치하지 않는 것으로 확인되었어요. |
| 390177 | SAML_RESPONSE_INVALID_BAD_CERT | SAML 응답에 포함된 x.509 인증서가 형식이 잘못되었거나 예상 인증서와 일치하지 않아요. |
| 390178 | SAML_RESPONSE_INVALID_PROOF_KEY_MISMATCH | 인증 요청 ID와 관련하여 증명 키가 일치하지 않아요. |
| 390179 | SAML_RESPONSE_INVALID_INTEGRATION_MISCONFIGURATION | SAML IdP 구성이 잘못되었어요. |
| 390180 | SAML_RESPONSE_INVALID_REQUEST_PAYLOAD | 인증 중 잘못된 페이로드를 사용하거나 잘못된 페더레이션 OAuth 연결 문자열을 사용했어요. |
| 390181 | SAML_RESPONSE_INVALID_MISSING_SUBJECT_CONFIRMATION_BEARER | Bearer 방식의 Subject 확인이 없어 검증할 수 없어요. |
| 390182 | SAML_RESPONSE_INVALID_MISSING_SUBJECT_CONFIRMATION_DATA | 어설션에 Subject 확인 데이터가 없어요. |
| 390183 | SAML_RESPONSE_INVALID_CONDITIONS | 이 표의 앞선 조건과 다른 이유로 SAML 어설션이 유효하지 않아요. |
| 390184 | SAML_RESPONSE_INVALID_ISSUER | SAML 응답에 SAML IDP 구성에 구성된 것과 다른 발급자/entityID 값이 포함되어 있어요. |
JWT 토큰 오류 (JWT Token Errors)
다음 오류는 키 쌍 인증에 사용되는 JWT 토큰과 연관돼요.
| 오류 코드 | 오류 | 설명 |
|---|---|---|
| 394307 | JWT_TOKEN_ACCOUNT_MISMATCH | 토큰에서 얻은 Snowflake 계정이 요청 URL의 계정과 같지 않아요. |
| 390144 | JWT_TOKEN_INVALID | JWT 토큰에 일반적인 문제가 있어요. 가능한 해결책은 일반적인 오류 및 해결책을 참고하세요. |
| 394300 | JWT_TOKEN_INVALID_USER_IN_ISSUER | 발급자에 지정된 사용자 이름이 Snowflake 계정에 존재하지 않아요. 가능한 해결책은 일반적인 오류 및 해결책을 참고하세요. |
| 394301 | JWT_TOKEN_MISSING_ISSUE_OR_EXPIRATION_TIME | JWT 토큰에 발급 시간이나 만료 시간이 포함되어 있지 않아요. |
| 394302 | JWT_TOKEN_INVALID_ISSUE_TIME | JWT 토큰이 발급 시간 후 60초가 지나서 Snowflake에 수신되었어요. 가능한 해결책은 일반적인 오류 및 해결책을 참고하세요. |
| 394303 | JWT_TOKEN_INVALID_EXPIRATION_TIME | JWT 토큰이 만료되었어요. |
| 394304 | JWT_TOKEN_INVALID_PUBLIC_KEY_FINGERPRINT_MISMATCH | 발급자에 지정된 공개 키 지문과 Snowflake의 사용자에 대해 저장된 지문 사이에 불일치가 있어요. 가능한 해결책은 일반적인 오류 및 해결책을 참고하세요. |
| 394305 | JWT_TOKEN_INVALID_ALGORITHM | JWT 토큰이 RS256 알고리즘으로 서명되지 않았어요. |
| 394306 | JWT_TOKEN_INVALID_SIGNATURE | Snowflake가 JWT 토큰이 제공한 서명을 확인할 수 없었어요. JWT가 제공된 공개 키와 짝지어지지 않은 개인 키로 서명되었을 수 있어요. JWT 서명이 손상되었거나 수정되었을 수도 있어요. |
예제 (Examples)
다음 예제는 외부 OAuth, SAML 또는 키 쌍 인증과 연관된 실패한 로그인 시도의 UUID와 함께 SYSTEM$GET_LOGIN_FAILURE_DETAILS 함수를 사용하는 방법을 알려줘요.
- 오류 메시지에서 UUID를 찾아요:
Invalid OAuth access token. [0ce9eb56-821d-4ca9-a774-04ae89a0cf5a] - UUID를 SYSTEM$GET_LOGIN_FAILURE_DETAILS 함수의 인자로 사용하고 JSON_EXTRACT_PATH_TEXT 함수로 오류를 추출해요:
SELECT JSON_EXTRACT_PATH_TEXT(SYSTEM$GET_LOGIN_FAILURE_DETAILS('0ce9eb56-821d-4ca9-a774-04ae89a0cf5a'), 'errorCode'); - 외부 OAuth 오류 또는 SAML 오류 표에서 오류 설명을 찾아요.
더 알아보기
- Snowflake 시스템 정보 함수 — 관련 시스템 함수 전체 목록