ALTER USER … ROTATE PROGRAMMATIC ACCESS TOKEN
ALTER USER … ROTATE PROGRAMMATIC ACCESS TOKEN (PAT)
프로그래매틱 액세스 토큰(programmatic access token)을 회전시켜, 확장된 만료 시간을 가진 새 토큰 비밀을 생성하고 기존 토큰 비밀을 만료시키는 명령이에요. 새 비밀은 토큰을 처음 만들 때 설정된 DAYS_TO_EXPIRY 속성을 사용해 생성돼요.
출처: 문서
본문
참고: 같은 사용자에 대한 프로그래매틱 액세스 토큰을 인증에 사용한 세션에서는 프로그래매틱 액세스 토큰을 회전시킬 수 없어요.
관련 명령: ALTER USER … ADD PROGRAMMATIC ACCESS TOKEN (PAT), ALTER USER … MODIFY PROGRAMMATIC ACCESS TOKEN (PAT), ALTER USER … REMOVE PROGRAMMATIC ACCESS TOKEN (PAT), SHOW USER PROGRAMMATIC ACCESS TOKENS
구문 (Syntax)
ALTER USER [ IF EXISTS ] [ <username> ] ROTATE { PROGRAMMATIC ACCESS TOKEN | PAT } [ IF EXISTS ] <token_name>
[ EXPIRE_ROTATED_TOKEN_AFTER_HOURS = <integer> ]
매개변수 (Parameters)
username — 토큰과 연결되는 사용자의 이름이에요. 이 매개변수를 생략하면 명령은 현재 로그인한 사용자(현재 세션의 활성 사용자)의 토큰을 회전시켜요.
ROTATE { PROGRAMMATIC ACCESS TOKEN | PAT } token_name — 지정된 이름의 프로그래매틱 액세스 토큰을 회전시켜요. PAT 키워드는 PROGRAMMATIC ACCESS TOKEN 키워드를 짧게 지정하는 방법으로 사용할 수 있어요.
IF EXISTS — 지정된 이름의 토큰이 사용자에게 있을 때만 프로그래매틱 액세스 토큰을 회전시켜요. 그 이름의 토큰이 없으면 명령은 오류 대신 아무 작업도 하지 않고 성공적으로 완료돼요.
EXPIRE_ROTATED_TOKEN_AFTER_HOURS = integer — 기존 토큰 비밀을 지정된 시간(시간) 후에 만료되도록 설정해요. 0으로 설정하면 현재 토큰 비밀을 즉시 만료시킬 수 있어요. 현재 비밀이 만료되기까지 남은 시간 범위 내의 값으로 설정할 수 있어요.
기본값: 24
접근 제어 요구사항 (Access control requirements)
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요:
| 권한 | 객체 | 설명 |
|---|---|---|
| MODIFY PROGRAMMATIC AUTHENTICATION METHODS | User | 자신이 아닌 다른 사람 사용자나 서비스 사용자에 대해 프로그래매틱 액세스 토큰을 회전시킬 때만 필요해요. |
지정한 권한 집합을 가진 사용자 정의 역할을 만드는 방법은 사용자 정의 역할 만들기를 참고하세요.
보호 객체에서 SQL 작업을 수행할 때 역할과 권한 부여에 대한 일반 정보는 접근 제어 개요를 참고하세요.
출력 (Output)
명령 출력은 다음 열로 회전된 프로그래매틱 액세스 토큰에 대한 정보를 제공해요:
| 열 | 설명 |
|---|---|
| token_name | 회전된 토큰의 이름. |
| token_secret | 토큰 자체. 엔드포인트 인증에 사용해요. 참고: 토큰은 ALTER USER … ROTATE PROGRAMMATIC ACCESS TOKEN 명령의 출력에만 나타나요. 다른 SQL 명령이나 함수는 토큰을 출력하거나 반환하지 않아요. 이 토큰에 프로그래매틱하게 접근해야 한다면 이 명령을 실행하고 반환된 결과에서 토큰을 검색하면 돼요. |
| rotated_token_name | 이전 비밀을 나타내는 토큰의 이름. 이 토큰 객체로 이전 비밀이 얼마나 오래 유효한지 확인할 수 있어요. 필요하면 토큰을 만료시킬 수도 있어요. 이 토큰에는 다른 유형의 변경을 할 수 없어요. 이 토큰 객체는 사용자당 허용되는 최대 토큰 수에 포함된다는 점에 주의해요. |
사용 메모 (Usage notes)
프로그래매틱 액세스 토큰을 회전시킬 때:
- Snowflake는 네트워크 정책과 인증 정책 요구사항이 충족되는지 확인하지 않아요.
- 프로그래매틱 액세스 토큰이 역할로 제한되어 있으면, Snowflake는 토큰과 연결된 사용자에게 그 역할이 부여되었는지 확인하지 않아요.
예시 (Examples)
사용자 example_user와 연결된 프로그래매틱 액세스 토큰을 회전시켜요.
ALTER USER IF EXISTS example_user ROTATE PROGRAMMATIC ACCESS TOKEN token_name;
사용자 example_user와 연결된 프로그래매틱 액세스 토큰을 회전시키고 기존 토큰 비밀을 즉시 만료시켜요.
ALTER USER IF EXISTS example_user ROTATE PROGRAMMATIC ACCESS TOKEN token_name
EXPIRE_ROTATED_TOKEN_AFTER_HOURS=0;