비밀번호 없이 MySQL 데이터베이스 및 사용자 생성

비밀번호 없이 MySQL 데이터베이스 및 사용자 생성

저는 기본적으로 클라우드 서버에서 Apache 가상 호스트, Git 저장소 및 기타 항목을 준비하는 bash 스크립트 세트를 구축 중입니다. 지금까지는 모든 것이 잘 작동하고 있지만 큰 문제가 발생했습니다.MySQL 데이터베이스 및 사용자 생성.

현재 스크립트는 키와 함께 SSH를 사용하여 클라우드 서버에 인증하고 우리 팀의 모든 사람이 명령을 실행할 수 있습니다. 나는 이것을 이런 식으로 유지하고 루트나 높은 권한을 가진 다른 사용자로 mysql에 로그인할 필요 없이 어떻게든 새로운 MySQL 데이터베이스와 사용자를 생성하게 하고 싶지만 이에 대한 해결책은 없습니다.

아이디어 #1비밀번호 없이 새로운 mysql 사용자를 생성하고 루트와 같은 모든 권한을 부여하되 오직 @'localhost'.

아이디어 #2이 MySQL 제어 사용자의 비밀번호를 파일에 저장하고 다른 스크립트에서 사용하는 현재 SSH 사용자만 액세스할 수 있도록 하는 것입니다. 그런 다음 mysql 로그인은 이 저장된 비밀번호를 사용하여 로그인하고 데이터베이스와 사용자를 생성합니다.

어떤 옵션이 더 나은지 모르겠고 위험하다는 것도 알고 있습니다. 의견과 더 나은 아이디어를 요청합니다.

답변1

팀에서 사용하는 unix 사용자와 mysql 사용자가 원하는 작업을 계속 수행할 수 있도록 허용하면서 최소한의 액세스 권한을 갖도록 하고 싶습니다. 두 아이디어 모두 필요한 것보다 더 많은 액세스 권한을 허용하는 것 같습니다. 팀 mysql 사용자에게는 다음이 더 좋습니다.

  1. CREATE 액세스 권한 또는 필요한 액세스 권한만 갖습니다(팀이 수행할 수 있는 작업을 최소한으로 제한). GRANT 문을 사용하여 mysql 사용자 액세스 권한을 부여합니다.
  2. 소유자 읽기 권한만 있는 파일 에 사용자/비밀번호를 저장합니다 ~/my.cnf(더 이상 팀을 제한하지 않지만 다른 사람이 스크립트를 볼 경우 로그인을 볼 수 없도록 합니다).

위의 작업은 수행하기 쉽고 큰 개선이 되었습니다.

더 나은 아이디어이지만 더 많은 작업은 팀 사용자에게 데이터베이스 생성 액세스를 허용하지 않고 단지 자신만이 제어할 수 있는(그리고 액세스 권한만 있는 다른 사용자 스크립트) 일부 대기열에 사이트를 설정하기 위한 요청을 배치하는 것입니다. 필요) 사이트 설정을 정기적으로 처리합니다. 대기열은 각 줄에 요청이 있는 파일, 각 파일에 요청이 있는 디렉터리 또는 각 레코드에 요청이 있는 데이터베이스 테이블일 수 있습니다. 이는 시스템을 얼마나 보호하려는지에 따라 다릅니다.

일반적으로 루트만큼 액세스 권한이 없는 unix 및 mysql 사용자를 사용해야 합니다. 데이터베이스를 생성 및 삭제하고 정기적으로 사용하는 작업만 수행할 수 있는 작업 mysql 사용자를 직접 생성합니다. 액세스 권한을 부여하기 위해 다른 사용자를 설정해야 하는 경우에만 루트 또는 유사한 권한을 가진 사용자를 사용합니다. 스크립트에서는 문제가 발생할 경우 피해를 제한하기 위해 사용자를 최대한 제한합니다.

관련 정보