27.9 플러그 인증 제한
이 섹션의 첫 번째 부분은 섹션 6.3.7 "플러그 인증" 에서 설명하고있는 플러그 인증 프레임 워크의 적용 기준에 관한 일반적인 제약에 대해 설명합니다. 두 번째 부분에서는 타사 커넥터 개발자가 커넥터 플러그 인증 기능을 사용할 수있는 범위와 대응 성을 높이기 위해 관련된 단계를 판단하는 방법을 설명합니다.
여기에서 사용하는 "기본 인증"이라는 말은 mysql.user
테이블의 Password
컬럼에 저장된 비밀번호에 대한 인증을 말합니다. 이것은 플러그 인증이 구현되기 전에 이전 MySQL Server에서 제공되고 있던 것과 동일한 인증 방법입니다. 이것이 계속 기본 방법이지만, 현재는 플러그인을 사용하여 구현됩니다. "Windows 기본 인증"이라 함은 Windows 기본 인증 플러그인 ( "Windows 플러그인"라고 약칭)에서 구현 된 이미 Windows에 로그인 한 사용자의 자격 증명을 사용하여 인증을 나타냅니다.
일반적인 플러그 인증 제한
Connector / C, Connector / C ++ 이러한 커넥터를 사용하는 클라이언트는 기본 인증을 사용하는 계정을 통해서만 서버에 연결할 수 있습니다.
예외 : 커넥터는
libmysqlclient
에 (정적이지 않고) 동적으로 연결하도록 구축 된 경우 플러그 인증을 지원하고 최신 버전의libmysqlclient
가 설치되어 있거나 커넥터가 최신libmysqlclient
에 대해 링크하도록 소스로부터 재 컴파일되는 경우 해당 버전을로드합니다.Connector / J :이 커넥터를 사용하는 클라이언트는 기본 인증을 사용하는 계정을 통해서만 서버에 연결할 수 있습니다.
Connector / Net : Connector / Net 6.4.4 이전에는이 커넥터를 사용하는 클라이언트는 기본 인증을 사용하는 계정을 통해서만 서버에 연결할 수 있습니다. 6.4.4 이상에서 클라이언트는 Windows 플러그인을 사용하는 계정을 통해 서버에 연결할 수 있습니다.
Connector / ODBC : Connector / ODBC 3.51.29 및 5.1.9 이전에는이 커넥터를 사용하는 클라이언트는 기본 인증을 사용하는 계정을 통해서만 서버에 연결할 수 있습니다. 3.51.29 및 5.1.9 이상에서는 Windows 용 커넥터의 바이너리 배포판을 사용하는 클라이언트는 PAM 또는 Windows 플러그인을 사용하는 계정을 통해 서버에 연결할 수 있습니다. (이 기능은 이전에 사용 된 MySQL 5.1
libmysqlclient
대신 MySQL 5.5.16libmysqlclient
에 Connector / ODBC 바이너리를 링크 한 결과를 제공합니다. 새로운libmysqlclient
서버 측의 PAM 및 Windows 인증 플러그 인에 필요한 클라이언트 측의 지원이 포함됩니다.)Connector / PHP :이 커넥터를 사용하는 클라이언트는 PHP의 MySQL 기본 드라이버 (
mysqlnd
)를 사용하여 컴파일 된 경우에는 기본 인증을 사용하는 계정을 통해서만 서버에 연결할 수 있습니다.MySQL Proxy : MySQL Proxy 0.8.2 이전에는 클라이언트는 기본 인증을 사용하는 계정을 통해서만 서버에 연결할 수 있습니다. 0.8.2 이상에서 클라이언트는 PAM 플러그인을 사용하는 계정을 통해 서버에 연결할 수 있습니다. 0.8.3 이상에서 클라이언트는 Windows 플러그인을 사용하는 계정을 통해 서버에 연결할 수 있습니다.
MySQL Enterprise Backup : 버전 3.6.1 이전의 MySQL Enterprise Backup은 기본 인증을 사용하는 계정을 통해서만 서버에 대한 연결을 지원합니다. 3.6.1 이상에서는 MySQL Enterprise Backup은 기본 이외의 인증을 사용하는 계정을 통해 서버에 연결할 수 있습니다.
Windows 네이티브 인증 : Windows 플러그인을 사용하는 계정을 통한 연결은 Windows Domain 설치가 필요합니다. 이것이 없으면 NTLM 인증이 사용 된 로컬 연결 만 가능합니다. 즉, 클라이언트와 서버를 동일한 컴퓨터에서 실행해야합니다.
프록시 사용자 프록시 사용자 지원 프록시 사용자 기능을 구현하는 플러그인 (즉, 연결되어있는 사용자 이름과 다른 사용자 이름을 반환 할 수있는 플러그인)에서 인증 된 계정을 통해 클라이언트가 연결할 수있는 범위 까지 사용할 수 있습니다. 예를 들어, 기본 인증 플러그인은 프록시 사용자를 지원하지 않지만, PAM 및 Windows 플러그인을 지원합니다.
복제 : MySQL 5.6.4 이전 버전에서는 리플리케이션 슬레이브는 기본 인증을 사용하는 마스터 계정을 통해서만 마스터 서버에 연결할 수 있습니다. 5.6.4 이상에서 리플리케이션은 필요한 클라이언트 플러그인을 사용할 경우 기본 이외의 인증을 사용하는 마스터 계정을 통해 연결할 수 있습니다. 플러그인은
libmysqlclient
에 포함되어있는 경우 기본적으로 사용할 수 있습니다. 그렇지 않으면 플러그인은 슬레이브plugin_dir
시스템 변수에 의해 임명 된 후 슬레이브 디렉토리에 설치해야합니다.FEDERATED
테이블 :FEDERATED
테이블은 기본 인증을 사용하는 원격 서버의 계정을 통해서만 원격 테이블에 액세스 할 수 있습니다.
플러그 인증 및 타사 커넥터
타사 커넥터 개발자는 다음 지침을 사용하여 플러그 인증 기능을 이용하기위한 커넥터의 준비와 대응 성을 높이기 위해 관련된 단계를 확인할 수 있습니다.
변경되지 않은 기존의 커넥터는 기본 인증을 사용하여이 커넥터를 사용하는 클라이언트는 기본 인증을 사용하는 계정을 통해서만 서버에 연결할 수 있습니다. 그러나 최신 버전의 서버에 커넥터를 테스트하여 이러한 연결이 계속 제대로 작동하는지 확인해야합니다.
예외 : 커넥터는 (정적이지 않고) 동적으로
libmysqlclient
에 연결하는 경우 변경하지 않고 플러그 인증을 처리 할 수 최신 버전의libmysqlclient
가 설치되어있는 경우이 버전을로드 합니다.플러그 인증 기능을 이용하려면
libmysqlclient
기반 커넥터를 최신 버전의libmysqlclient
에 다시 연결해야합니다. 그러면 커넥터는 현재libmysqlclient
에 포함 된 클라이언트 플러그인 (PAM 인증에 필요한 평문 플러그인이나 Windows 기본 인증에 필요한 Windows 플러그인 등)을 필요로하는 계정을 통한 연결을 지원할 수 수 있습니다. 현재libmysqlclient
에게 링크 따라 커넥터는 기본 MySQL 플러그인 디렉토리 (일반적으로 로컬 서버plugin_dir
시스템 변수의 기본값으로 지명 된 디렉토리)에 설치된 클라이언트에 액세스 할 수 있습니다.커넥터가 동적으로
libmysqlclient
에 링크하는 경우 최신 버전의libmysqlclient
클라이언트 호스트에 설치되어 있는지, 커넥터가 런타임에로드 할 수 있는지 확인해야합니다.커넥터가 특정 인증 방식을 지원하려면 직접 클라이언트 / 서버 프로토콜에 그 방식을 구현합니다. Connector / Net은이 방법을 사용하여 Windows 기본 인증 지원을 제공합니다.
커넥터가 기본 플러그인 디렉토리와 다른 디렉토리에서 클라이언트 플러그인을로드 할 필요가있는 경우 클라이언트 사용자가 디렉토리를 지정하는 방법을 구현해야합니다. 이 후보는 커넥터가 디렉토리 이름을 얻을 수 명령 행 옵션이나 환경 변수 등이 있습니다. mysql이나 mysqladmin 등의 표준 MySQL 클라이언트 프로그램은
--plugin-dir
옵션을 구현합니다. 섹션 23.8.14 "C API 클라이언트 플러그인 함수" 를 참조하십시오.커넥터에서의 프록시 사용자 지원이 섹션의 앞부분에서 설명한 바와 같이, 커넥터가 지원하는 인증 방식이 프록시 사용자를 허용할지 여부에 따라 다릅니다.