CREATE PASSWORD POLICY
CREATE PASSWORD POLICY
새 비밀번호 정책(password policy)을 만들거나 기존 비밀번호 정책을 교체하는 명령이에요. 비밀번호 정책은 계정이나 사용자에 적용해 비밀번호의 강도·수명·시도 횟수 등을 제어해요.
출처: 문서
본문
새 비밀번호 정책을 만들거나 기존 비밀번호 정책을 교체해요.
비밀번호 정책을 만든 뒤에는 ALTER ACCOUNT 문으로 계정에, 또는 ALTER USER 문으로 사용자에 적용해요.
함께 보기: 비밀번호 정책 사용(Using password policies), DDL 명령
구문 (Syntax)
CREATE [ OR REPLACE ] PASSWORD POLICY [ IF NOT EXISTS ] <name>
[ PASSWORD_MIN_LENGTH = <integer> ]
[ PASSWORD_MAX_LENGTH = <integer> ]
[ PASSWORD_MIN_UPPER_CASE_CHARS = <integer> ]
[ PASSWORD_MIN_LOWER_CASE_CHARS = <integer> ]
[ PASSWORD_MIN_NUMERIC_CHARS = <integer> ]
[ PASSWORD_MIN_SPECIAL_CHARS = <integer> ]
[ PASSWORD_MIN_AGE_DAYS = <integer> ]
[ PASSWORD_MAX_AGE_DAYS = <integer> ]
[ PASSWORD_MAX_RETRIES = <integer> ]
[ PASSWORD_LOCKOUT_TIME_MINS = <integer> ]
[ PASSWORD_HISTORY = <integer> ]
[ COMMENT = '<string_literal>' ]
필수 매개변수 (Required parameters)
name
비밀번호 정책의 식별자로, 계정 안에서 고유해야 해요.
식별자 값은 반드시 알파벳 문자로 시작해야 하며, 전체 식별자 문자열이 큰따옴표로 묶이지 않는 한 공백이나 특수 문자를 포함할 수 없어요 (예: "My object"). 큰따옴표로 묶인 식별자는 대소문자를 구분해요.
자세한 내용은 식별자 요구 사항(Identifier requirements)을 참고해요.
선택 매개변수 (Optional parameters)
PASSWORD_MIN_LENGTH = integer
비밀번호가 포함해야 하는 최소 문자 수를 지정해요.
- 지원 범위: 8~256 (포함)
- 기본값: 14
PASSWORD_MAX_LENGTH = integer
비밀번호가 포함해야 하는 최대 문자 수를 지정해요. 이 숫자는 PASSWORD_MIN_LENGTH, PASSWORD_MIN_UPPER_CASE_CHARS, PASSWORD_MIN_LOWER_CASE_CHARS의 합보다 크거나 같아야 해요.
- 지원 범위: 8~256 (포함)
- 기본값: 256
PASSWORD_MIN_UPPER_CASE_CHARS = integer
비밀번호가 포함해야 하는 최소 대문자 수를 지정해요.
- 지원 범위: 0~256 (포함)
- 기본값: 1
PASSWORD_MIN_LOWER_CASE_CHARS = integer
비밀번호가 포함해야 하는 최소 소문자 수를 지정해요.
- 지원 범위: 0~256 (포함)
- 기본값: 1
PASSWORD_MIN_NUMERIC_CHARS = integer
비밀번호가 포함해야 하는 최소 숫자 수를 지정해요.
- 지원 범위: 0~256 (포함)
- 기본값: 1
PASSWORD_MIN_SPECIAL_CHARS = integer
비밀번호가 포함해야 하는 최소 특수 문자 수를 지정해요.
- 지원 범위: 0~256 (포함)
- 기본값: 0
PASSWORD_MIN_AGE_DAYS = integer
방금 변경된 비밀번호를 다시 변경하기 전에 사용자가 기다려야 하는 일수를 지정해요.
- 지원 범위: 0~999 (포함)
- 기본값: 0
PASSWORD_MAX_AGE_DAYS = integer
비밀번호를 변경해야 하는 최대 일수를 지정해요.
- 지원 범위: 0~999 (포함)
- 값이 0(즉
0)이면 비밀번호를 변경할 필요가 없음을 나타내요. Snowflake는 기본 계정 수준 비밀번호 정책이나 사용자 수준 정책에 이 값을 선택하는 것을 권장하지 않아요. 대신 내부 보안 지침을 충족하는 값을 선택해요. - 기본값: 90 (비밀번호를 90일마다 변경해야 함)
⚠️ 중요: 이 매개변수는 상태를 가져요(stateful). 자세한 내용은 계정과 사용자용 사용자 지정 비밀번호 정책의 참고 사항을 확인해요.
PASSWORD_MAX_RETRIES = integer
잠기기 전에 비밀번호를 입력할 수 있는 최대 시도 횟수를 지정해요.
- 지원 범위: 1~10 (포함)
- 기본값: 5
⚠️ 중요: 이 매개변수는 상태를 가져요. 자세한 내용은 계정과 사용자용 사용자 지정 비밀번호 정책의 참고 사항을 확인해요.
PASSWORD_LOCKOUT_TIME_MINS = integer
지정된 비밀번호 재시도 횟수(즉 PASSWORD_MAX_RETRIES)를 모두 소진한 뒤 사용자 계정이 잠길 시간(분)을 지정해요.
- 지원 범위: 1~999 (포함)
- 기본값: 15
⚠️ 중요: 이 매개변수는 상태를 가져요. 자세한 내용은 계정과 사용자용 사용자 지정 비밀번호 정책의 참고 사항을 확인해요.
PASSWORD_HISTORY = integer
Snowflake가 저장하는 가장 최근 비밀번호의 수를 지정해요. 저장된 비밀번호는 사용자가 비밀번호 값을 업데이트할 때 반복할 수 없어요.
현재 비밀번호 값은 기록(history)에 포함되지 않아요.
기록 값을 늘리면 Snowflake가 이전 값을 저장해요.
값을 줄이면 Snowflake는 설정된 값까지 저장된 값을 보관해요. 예를 들어 기록 값이 8이고 기록 값을 3으로 변경하면 Snowflake는 가장 최근 3개의 비밀번호만 저장하고 기록에서 더 오래된 5개의 비밀번호 값을 삭제해요.
- 기본값: 5
- 최대: 24
COMMENT = 'string_literal'
비밀번호 정책에 대한 설명(comment)을 추가하거나 기존 설명을 덮어써요.
접근 제어 요구 사항 (Access control requirements)
이 작업을 실행하는 데 사용하는 역할(role)은 최소한 다음 권한을 가져야 해요.
| 권한 (Privilege) | 객체 (Object) | 비고 |
|---|---|---|
| CREATE PASSWORD POLICY | Schema |
스키마 안의 객체를 작업하려면 상위 데이터베이스에 대한 권한이 최소 하나, 상위 스키마에 대한 권한이 최소 하나 필요해요.
지정된 권한 집합으로 사용자 지정 역할을 만드는 방법은 사용자 지정 역할 만들기(Creating custom roles)를 참고해요. 보호 가능한 객체에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여의 일반적인 내용은 접근 제어 개요(Overview of Access Control)를 참고해요.
비밀번호 정책 DDL과 권한에 대한 자세한 내용은 DDL 명령을 참고해요.
사용 메모 (Usage notes)
기존 비밀번호 정책을 교체해야 하고 현재 정책 정의를 확인해야 한다면 GET_DDL 함수를 호출하거나 DESCRIBE PASSWORD POLICY 명령을 실행해요.
OR REPLACE와 IF NOT EXISTS 절은 서로 배타적이에요. 같은 문에서 둘 다 사용할 수 없어요.
CREATE OR REPLACE <object> 문은 원자적(atomic)으로 동작해요. 즉, 객체를 교체할 때 기존 객체는 삭제되고 새 객체는 단일 트랜잭션 안에서 생성돼요.
예시 (Examples)
현재 계정용 password_policy_prod_1이라는 비밀번호 정책을 만들어요.
CREATE PASSWORD POLICY PASSWORD_POLICY_PROD_1
PASSWORD_MIN_LENGTH = 14
PASSWORD_MAX_LENGTH = 24
PASSWORD_MIN_UPPER_CASE_CHARS = 2
PASSWORD_MIN_LOWER_CASE_CHARS = 2
PASSWORD_MIN_NUMERIC_CHARS = 2
PASSWORD_MIN_SPECIAL_CHARS = 2
PASSWORD_MAX_AGE_DAYS = 30
PASSWORD_MAX_RETRIES = 3
PASSWORD_LOCKOUT_TIME_MINS = 30
PASSWORD_HISTORY = 5
COMMENT = 'production account password policy';
더 알아보기 (Learn more)
- 비밀번호 정책 사용 — 비밀번호 정책 개요
- ALTER PASSWORD POLICY — 비밀번호 정책 수정
- DROP PASSWORD POLICY — 비밀번호 정책 삭제