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 사용자를 직접 만들었습니다. 액세스 권한을 부여하기 위해 다른 사용자를 설정해야 하는 경우에는 루트나 유사한 권한을 가진 사용자를 사용하겠습니다. 스크립트에서는 문제가 발생할 경우 피해를 최소화하기 위해 사용자를 최대한 제한합니다.

관련 정보