내 서버에는 로컬 호스트 IP에 연결된 각각의 데이터베이스를 사용하여 6개의 다른 사이트가 설정되어 있습니다. 루트에서 설정한 사용자 중 세 명은 하나의 관련 데이터베이스에만 액세스할 수 있지만 show Databases 명령이 모든 데이터베이스를 표시하면 나머지 세 명만 액세스할 수 있습니다. 어떻게 이런 일이 일어났는지 모르겠습니다.
각 사용자가 자신의 데이터베이스에만 액세스할 수 있도록 하려면 어떻게 해야 합니까? 다르게 설정해야 하는데 방법이 기억나지 않습니다.
이것은 drupal 다중 사이트이며 궁극적으로 루트를 사용하여 가지고 있는 모든 데이터베이스에 액세스하기 위해 단 하나의 사용자와 비밀번호만 갖고 싶습니다. 그러나 drupal 설정의 경우 별도의 데이터베이스를 생성하기 전에 각 데이터베이스에 대한 설정 사용자 및 비밀번호가 필요합니다. 다른 모든 데이터베이스에 영향을 미치는 하나의 데이터베이스를 변경하고 있습니다. 따라서 접두어를 지정하는 방법을 배울 때까지 별도로 유지하려고 노력할 것입니다. 그게 그렇게 중요한 건가? 가장 좋은 방법은 무엇입니까? 모르겠습니다.
답변1
특별한 관행은 없으며 모두 환경과 안전 고려 사항에 따라 다릅니다. Drupal 다중 사이트 구성을 사용하면 동일한 코드베이스에서 실행되는 모든 사이트의 관리자가 동일한 사람이 아니거나 상호 신뢰도가 높은 소규모 그룹인 상황이 발생합니다. 그 이유는 Drupal 사이트에 대한 완전한 관리 권한을 가진 사람은 누구나 다양한 수단을 통해(사이트에 대한 FTP 액세스 없이도) 사이트에서 임의의 PHP 코드를 실행할 수 있고, 사이트의 임의 PHP 코드를 사용하여 두 사이트가 모두 있는 경우 다른 사이트에 영향을 미칠 수 있기 때문입니다. 동일한 HTTP 문서 루트에 있고 동일한 Drupal 코드를 공유합니다.
mysql에서 다음 명령을 사용하여 mysql 사용자를 생성할 수 있습니다.
mysql> CREATE USER 'www1'@'localhost' IDENTIFIED BY 'password123';
다음은 www1 사용자가 site1 데이터베이스에 액세스할 수 있도록 허용합니다.
mysql> GRANT ALL PRIVILEGES ON site1_database.* To 'www1'@'localhost' IDENTIFIED BY 'password123';
웹 서버에서 settings.php
각 사이트의 mysql 서버 주소, 데이터베이스 이름, 사용자 이름 및 비밀번호를 구성할 수 있습니다.