• 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. 보안
  • 1. 일반적인 보안 문제
    2. MySQL 권한 시스템
    1. MySQL에서 제공되는 권한
    2. 권한 시스템 부여 테이블
    3. 계정 이름 지정
    4. 액세스 제어 1 단계 : 연결 확인
    5. 액세스 제어, 2 단계 : 요청 확인
    6. 권한 변경이 활성화되는시기
    7. 액세스 거부 오류의 원인
    3. MySQL 사용자 계정 관리
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 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 새로운 기능

6.2 MySQL 권한 시스템

6.2.1 MySQL에서 제공되는 권한
6.2.2 권한 시스템 부여 테이블
6.2.3 계정 이름 지정
6.2.4 액세스 제어 1 단계 : 연결 확인
6.2.5 액세스 제어, 2 단계 : 요청 확인
6.2.6 권한 변경이 활성화되는시기
6.2.7 액세스 거부 오류의 원인

MySQL 권한 시스템의 주요 역할은 특정 호스트에서 연결하는 사용자를 인증 할 수 및 사용자를 SELECT , INSERT , UPDATE , DELETE 등의 데이터베이스의 권한에 연결할 수 있습니다. 추가 기능으로 익명 사용자를 가지는 것, 그리고 관리 작업과 LOAD DATA INFILE 등의 MySQL의 특정 기능에 대한 권한을 부여 할 등이 있습니다.

MySQL 권한 시스템에서는 실행되지 않을 수도 있습니다.

  • 특정 사용자의 액세스를 거부하도록 명시 적으로 지정할 수 없습니다. 즉, 사용자가 명시 적으로 일치하고 연결을 거부 할 수 없습니다.

  • 사용자가 데이터베이스 테이블을 만들거나 삭제할 수 있지만 데이터베이스 자체를 생성하거나 삭제할 수없는 권한을 사용자가 가질 수 있도록 지정할 수 없습니다.

  • 비밀번호는 계정에 대해 전체적으로 적용됩니다. 데이터베이스, 테이블, 루틴 등의 특정 오브젝트에 패스워드를 연결할 수 없습니다.

MySQL 권한 시스템의 사용자 인터페이스는 CREATE USER , GRANT , REVOKE 등의 SQL 문으로 구성됩니다. 섹션 13.7.1 "계정 관리 명령문" 을 참조하십시오.

내부적으로 서버는 권한 정보를 mysql 데이터베이스 (즉 mysql 이라는 데이터베이스)의 부여 테이블에 저장합니다. MySQL 서버는 이러한 테이블의 내용을 시작할 때 메모리에 읽고 부여 테이블의 인 메모리 복사에 따라 액세스 제어를 결정합니다.

MySQL 권한 시스템은 모든 사용자는 자신에게 허용 된 작업 만 수행 할 수 있습니다. 사용자로 MySQL 서버에 연결하면 사용자 ID는 연결된 호스트 및 지정한 사용자 이름에 의해 결정됩니다. 연결 후 요청을 실행하면 시스템은 사용자 ID와 사용자가 수행 할 작업에 따라 권한을 부여합니다.

MySQL에서는 호스트 이름과 사용자 이름을 모두 고려하여 사용자를 식별하지만 이것은 특정 사용자 이름이 모든 호스트에서 동일인에 속한다고 가정하는 근거가 없기 때문입니다. 예를 들어, office.example.com 에서 접속 한 사용자 joe 는 home.example.com 에서 접속 한 joe 와 동일 인물이라고는 할 수 없습니다. MySQL은 우연히 동일한 이름을 가진 다른 호스트의 사용자를 식별 할 수 있도록함으로써이를 처리합니다. 즉, office.example.com 에서 joe 의한 연결에 대해 하나의 권한 세트를 부여하고 home.example.com 에서 joe 의한 연결에 대해 다른 권한 세트를 제공 할 수 있습니다. 특정 계정이 가지는 권한을 표시하려면 SHOW GRANTS 문을 사용합니다. 예 :

 SHOW GRANTS FOR 'joe'@'office.example.com';
 SHOW GRANTS FOR 'joe'@'home.example.com';

서버에 연결하는 클라이언트 프로그램을 실행할 때 MySQL 접근 제어는 두 단계가 있습니다.

1 단계 : 서버는 사용자 ID 및 올바른 암호를 지정하여 ID를 검증 할 수 있을지 여부에 따라 연결을 허용할지 거부합니다.

2 단계 : 연결되어있는 경우 서버는 사용자가 발행하는 각 문을 검사하여 문을 실행하기에 충분한 권한이 사용자에게 있는지 여부를 판별합니다. 예를 들어 데이터베이스의 테이블에서 레코드를 선택하거나 데이터베이스의 테이블을 삭제하거나하려고하면 서버는 사용자에게 그 테이블의 SELECT 권한이 있는지 또는 데이터베이스의 DROP 권한이 있는지 여부를 확인합니다 .

각 단계에서 발생하는 동작에 대한 자세한 설명은 섹션 6.2.4 "액세스 제어 1 단계 : 연결 확인" 및 섹션 6.2.5 "액세스 제어, 2 단계 : 요청 확인" 을 참조하십시오.

사용자 연결 (사용자 자신 또는 다른 사람에 의해) 권한이 변경된 경우 그 변경은 사용자가 발행하는 다음 문에서 반드시 즉시 적용되는 것은 아닙니다. 서버가 부여 테이블을 다시로드 조건에 대한 자세한 내용은 섹션 6.2.6 "권한 변경이 활성화되는시기" 를 참조하십시오.

보안 관련 일반적인 조언 내용은 6.1 절 "일반적인 보안 문제" 를 참조하십시오. 권한과 관련된 문제 진단에 대한 도움은 섹션 6.2.7 "액세스 거부 오류의 원인" 을 참조하십시오.

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