제가 작업하는 환경에서는 개발자가 Unix 계정의 사용자 이름만 사용하여 애플리케이션의 MySQL 데이터베이스에 연결하도록 해야 합니다. 이를 뒷받침하는 원동력은 MySQL 일반 로그를 통해 쿼리를 실행한 사용자에게 쿼리 실행을 추적하는 것입니다. 지금까지 어떤 이상적인 해결책도 찾지 못했습니다. 불완전한 해결책도 있지만 더 나은 아이디어를 얻기를 바라고 있습니다.
개발자는 애플리케이션에서 사용하는 자격 증명에 액세스할 수 있습니다(호스트 시스템에 로그인하여 액세스할 수 있음). 자격 증명을 애플리케이션에서 사용할 수 있도록 하면서 자격 증명에 대한 액세스를 제한하는 솔루션을 개발 중입니다. 하지만 여전히 MySQL 로그가 쿼리를 실행하는 실제 사용자를 반영하는지 확인하고 싶습니다.
mysql -u <user>
<user>
강제로 로그인해야 하는 Unix 사용자 이름을 제한할 수 있는 방법을 아는 사람이 있습니까 ? 데이터베이스는 AWS RDS에서 호스팅되므로 이에 대한 제어권은 없지만 mysql
연결 시스템의 바이너리에 대한 완전한 제어권은 있습니다.
더 많은 정보를 추가하고 싶지만 무엇이 관련되어 있는지 잘 모르겠습니다. 질문을 해주시면 제가 직접 업데이트하겠습니다.
-u
스위치를 제한 하고 실제 바이너리를 호출 하는 논리를 추가하기 위해 바이너리를 래핑하는 것과 같은 작업을 수행할 수 있는 방법이 있습니까 mysql
?
답변1
MySQL Enterprise Edition은 PAM(플러그형 인증 모듈)을 지원합니다.
이 도움말에서는 다음을 설정하는 방법을 설명합니다.https://dev.mysql.com/doc/refman/5.5/en/pam-pluggable-authentication.html
단점은 너야
- MySQL Business Edition이 필요합니다.
- MySQL 서버의 구성 파일에 대한 액세스가 필요합니다.
이것이 없으면 MySQL의 자체 사용자 관리에서 신뢰할 수 있는 Unix 사용자를 복제하는 스크립트를 작성하는 것 외에는 할 수 있는 일이 많지 않습니다. 하지만 비밀번호를 동기화할 수는 없습니다.