13.7.1.1 ALTER USER 구문
ALTER USERuser_specification
[,user_specification
] ...user_specification
:user
PASSWORD EXPIRE
ALTER USER
문은 MySQL 계정을 변경합니다. 이를 사용하려면 mysql
데이터베이스에 대한 글로벌 CREATE USER
권한 또는 INSERT
권한이 있어야합니다.
ALTER USER
는 MySQL 5.6.6에서 추가되었습니다. 그러나 5.6.6에서 ALTER USER
는 Password
컬럼도 빈 문자열로 설정하기 때문에이 문은 5.6.7까지 사용하지 마십시오.
각 계정에 대해 ALTER USER
는 암호를 만료합니다. 예 :
ALTER USER 'jeffrey'@ 'localhost'PASSWORD EXPIRE;
각 계정 이름은 섹션 6.2.3 "계정 이름 지정" 에 설명되어있는 형식이 사용됩니다. 계정 이름의 사용자 이름 부분 만 지정한 경우 '%'
의 호스트 이름 부분이 사용됩니다.
계정의 암호를 만료하면 mysql.user
테이블의 해당 행에 영향을 미칩니다. 서버는 password_expired
컬럼을 'Y'
로 설정합니다.
계정의 암호가 만료 된 경우 클라이언트 세션이 제한 모드에서 작동합니다. 제한 모드에서는 사용자가 SET PASSWORD
문을 발행하여 계정의 새 비밀번호를 확립 할 때까지 해당 세션에서 실행 된 작업은 오류입니다.
mysql>SELECT 1;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement mysql>SET PASSWORD = PASSWORD('
Query OK, 0 rows affected (0.01 sec) mysql>new_password
');SELECT 1;
+---+ | 1 | +---+ | 1 | +---+ 1 row in set (0.00 sec)
MySQL 5.6.8의 시점에서는이 제한된 동작 모드에서 SET
문이 허용됩니다. 이것은 해당 계정의 암호가 old_passwords
을 그 기본값과 다른 값으로 설정해야하는 해시 형식을 사용하는 경우에 유용합니다.
관리 사용자 계정의 암호를 재설정 할 수 있습니다 만, 그 계정의 기존 세션이 제한된 상태로 유지됩니다. 문을 성공적으로 수행하려면 해당 계정을 사용하는 클라이언트는 끊고 다시 연결해야합니다.
SET PASSWORD
를 사용하여 암호를 현재 값으로 설정하여 암호를 '리셋'할 수 있습니다. 적절한 정책으로 다른 암호를 선택하는 것이 좋습니다.