• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 1. 데이터 정의 문
    2. 데이터 조작 문
    3. MySQL 트랜잭션과 잠금 문
    4. 복제 문
    5. Prepared Statements위한 SQL 구문
    6. MySQL 복합문 구문
    7. 데이터베이스 관리 문
    1. 계정 관리 문
    1. ALTER USER 구문
    2. CREATE USER 구문
    3. DROP USER 구문
    4. GRANT 구문
    5. RENAME USER 구문
    6. REVOKE 구문
    7. SET PASSWORD 구문
    2. 테이블 유지 보수 문
    3. 플러그인 및 사용자 정의 함수 문
    4. SET 구문
    5. SHOW 구문
    6. 기타 관리 문
    8. MySQL 유틸리티 문
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

13.7.1.7 SET PASSWORD 구문

SET PASSWORD [FOR user] = password_option

password_option: {
    PASSWORD('auth_string')
  | OLD_PASSWORD('auth_string')
  | 'hash_string'
}

SET PASSWORD 문은 MySQL 사용자 계정에 암호를 할당합니다.

  • FOR user 절을 지정하지 않으면이 문은 현재 사용자의 암호를 설정합니다.

     SET PASSWORD = PASSWORD ( ' cleartext password ');
    

    익명 이외의 계정을 사용하여 서버에 접속 한 모든 클라이언트는 해당 계정의 암호를 변경할 수 있습니다. 서버가 어떤 계정을 자동식으로 인증했는지를 표시하려면 CURRENT_USER() 함수를 호출합니다.

     SELECT CURRENT_USER ();
    
  • FOR user 절을 지정한 경우,이 문은 지정된 계정의 암호를 설정합니다. 그러나 그 계정이 존재해야합니다.

     SET PASSWORD FOR 'jeffrey'@ 'localhost'= PASSWORD ( ' cleartext password ');
    

    이 경우는 mysql 데이터베이스에 대한 UPDATE 권한이 필요합니다.

read_only 시스템 변수가 설정되어있는 경우, SET PASSWORD 는 다른 모든 필요한 권한 이외에 SUPER 권한이 필요합니다.

FOR user 절이 지정된 경우이 계정 이름은 섹션 6.2.3 "계정 이름 지정" 에 설명되어있는 형식이 사용됩니다. user 값은 ' user_name '@' host_name ' 로 지정하도록하십시오. 여기에서 ' user_name ' 과 ' host_name ' 해당 계정의 mysql.user 테이블 행의 User 와 Host 컬럼에 나열되어있는 내용과 동일합니다. (사용자 이름 만 지정한 경우 '%' 의 호스트 이름이 사용됩니다.) 예를 들어, 'bob' 및 '%.example.org' 의 User 와 Host 컬럼 값을 사용하여 계정의 암호를 설정 하려면이 문을 다음과 같이 설명합니다.

 SET PASSWORD FOR 'bob'@'%.example.org'= PASSWORD ( ' cleartext password ');

암호는 다음의 방법으로 지정할 수 있습니다.

  • PASSWORD() 함수를 사용하여

    이 함수의 인수는 평문 (암호화되지 않은) 암호입니다. PASSWORD() 는 암호 해시 및 암호화 된 암호 문자열을 반환합니다.

    old_passwords 시스템 변수 값에 의해, PASSWORD() 에 의해 사용되는 해시 방식이 결정됩니다. SET PASSWORD 가 암호를 올바른 형식이 아닌으로 거부 한 경우 해시 방식을 변경하기 위해 old_passwords 을 변경하는 것이 필요하게 될 가능성이 있습니다. 예를 들어, 계정이 mysql_native_password 플러그인을 사용하는 경우 old_passwords 값은 0이어야합니다.

     SET old_passwords = 0;
     SET PASSWORD FOR 'jeffrey'@ 'localhost'= PASSWORD ( 'mypass');
    

    old_passwords 값이 인증 플러그인에 필요한 값과 다른 경우, PASSWORD() 에 의해 반환 된 해시 된 암호 값이 플러그인에 허용되지 않고 암호를 설정하려고하면 오류가 생성됩니다. 예 :

     mysql> SET old_passwords = 1;
     mysql> SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('mypass');
     ERROR 1372 (HY000) : Password hash should be a 41-digit hexadecimal number
    
  • OLD_PASSWORD() 함수를 사용하여 :

    이 함수의 인수는 평문 (암호화되지 않은) 암호입니다. OLD_PASSWORD() 는 4.1 이전의 해시를 사용하여 암호를 해시 암호화 된 암호 문자열을 반환합니다. 이 해시 방식은 mysql_old_password 인증 플러그인을 사용하는 계정에만 적합합니다.

  • 이미 암호화 된 암호 문자열을 사용하여

    이 암호는 문자열 리터럴로 지정됩니다. 이것은이 계정에 사용되는 인증 방법에 필요한 해시 형식의 이미 암호화 된 암호 값을 표시해야합니다.

다음 표는 old_passwords 의 허용되는 값 각각의 값에 대한 암호 해시 방식 및 각각의 방식으로 해시 된 암호를 사용하는 인증 플러그인을 나타냅니다. 이 값은 MySQL 5.6.6 이후에 허용됩니다. 5.6.6 이전에서는 허용되는 값은 0 (또는 OFF )와 1 (또는 ON )입니다.

값 암호 해시 방식 연관된 인증 플러그인
0 MySQL 4.1 기본 해시 mysql_native_password
1 4.1 이전 ( "이전") 해시 mysql_old_password
2 SHA-256 해시 sha256_password

암호 설정의 자세한 내용은 섹션 6.3.5 "계정 암호 할당" 을 참조하십시오.

중요

상황에 따라서는, SET PASSWORD 가 서버 로그 또는 클라이언트 측의 ~/.mysql_history 등의 기록 파일에 기록 될 수 있습니다. 즉, 일반 텍스트 암호가 해당 정보에 대한 읽기 권한을 가진 모든 사용자가 읽을 수 있습니다. 이것이 서버 로그에서 발생하는 조건 및이를 제어하는 방법은 섹션 6.1.2.3 "암호 및 로깅" 을 참조하십시오. 클라이언트 측 로깅에 대한 유사한 정보는 섹션 4.5.1.3 "mysql 로그" 를 참조하십시오.

주의

4.1 이전의 클라이언트 프로그램을 사용하여 MySQL 4.1 이상 서버에 연결되어있는 경우 암호를 변경하기 전에 반드시 섹션 6.1.2.4 "MySQL에서 암호 해시" 를 읽어보십시오. 기본 암호 해시 형식이 MySQL 4.1에서 변경 되었기 때문에 암호를 변경하면 암호가 4.1보다 전의 클라이언트가 생성 할 수없는 해시 형식을 사용하여 저장되며이를 통해 나중에 서버에 연결하지 못할 가능성 수 있습니다.

MySQL 복제를 사용하는 경우 현재 CHANGE MASTER TO 문의 일부로 복제 슬레이브에서 사용되는 암호는 실질적으로 길이가 32 자로 제한됩니다. 암호가 더 긴 경우 초과 된 문자는 잘립니다. 이것은 일반적으로 MySQL Server에 의해 적용되는 제한 때문이 아니고, 어느 쪽인가하면, MySQL 복제에 관련된 문제입니다. (자세한 내용은 Bug # 43439를 참조하십시오.)

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved