Mysql

mysql不同使用者訪問

  • January 24, 2014

我在我的伺服器上設置了六個不同的站點,它們各自的數據庫都連結到一個本地主機 IP。我從 root 設置的其中三個使用者只能訪問一個關聯的數據庫,但當 show databases 命令顯示所有數據庫時,其他三個使用者可以訪問。不知道那是怎麼發生的。

如何使每個使用者只能訪問各自的數據庫?必須以不同的方式設置它們,但不記得如何設置。

這是一個drupal多站點,最終我希望只有一個使用者和密碼來訪問我使用root擁有的所有數據庫,但是對於drupal設置,每個數據庫都有一個必要的設置使用者和通行證,在我創建個人之前我是對影響其他一切的數據庫進行更改。因此,在我學會如何為它們加上前綴之前,我一直在嘗試將它們分開。重要的是,最佳做法是什麼 - 我不知道。

沒有特別的做法,這完全取決於您的環境和安全問題。當您使用 Drupal 多站點配置時,在從同一程式碼庫執行的所有站點的管理員不是同一個人或具有高度相互信任的小組的情況下。原因是在 Drupal 站點上擁有完全管理權限的任何人都可以通過各種方式在該站點上執行任意 PHP 程式碼(即使沒有對該站點的 FTP 訪問),並且可以從一個站點使用任意 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';

在您的 Web 伺服器上,您可以settings.php為每個站點配置 mysql 伺服器地址、數據庫名稱、使用者名和密碼。

引用自:https://unix.stackexchange.com/questions/81686