允許外部使用者通過連結伺服器訪問我的數據庫
我需要配置什麼來允許來自不同域的外部使用者訪問我的 SQL DB 中的幾個表?
過去,我們的一位客戶向我提供了 IP、使用者名和密碼,我創建了與外部連結伺服器的連接。
我現在想從我身邊做同樣的事情,不知道該怎麼做。
謝謝
澄清一下:您想向外部實體授予對數據庫的訪問權限?
您將需要為他們提供相同的三件事:
- IP 地址或伺服器名稱(如果最終解析)(和防火牆權限)
- UserName - 擁有盡可能少的權限。
- 密碼
然後,您可以讓所有外部實體共享相同的使用者名和密碼,或者為每個外部實體創建新的。如果他們都需要相同的權限,那麼我強烈建議創建一個擁有這些權限的數據庫角色,然後您只需將使用者添加到角色即可完成。
警告
我們在這裡談論的外部性如何?在您的公司之外還是在您的域之外?因為將您的 SQL 伺服器公開給全世界通常是個壞主意。
此外,根據他們編寫查詢的方式以及他們在做什麼,您可能會看到伺服器上的負載顯著增加。幼稚地使用連結伺服器會迅速降低性能。如果你有一個可讀的輔助設備,我建議讓它們連接到那個。
就個人而言,如果它在公司之外,那麼我會坐下來讓他們了解這可能會有多大風險。首選是進行數據轉儲,使用 SSIS 或 PowerShell 執行查詢,將數據轉儲到 csv 並讓它們攝取和處理。
當然,這是可以做到的!
每個 MySQL 數據庫都為其分配了使用者,您可以通過安裝在控制面板上的 MySQL 嚮導分配他們,或者您自己使用終端命令來分配,這取決於您的伺服器面板。
將不同的使用者分配到同一個數據庫後,這些使用者可以通過包括但不限於PHP程式碼的方式登錄。在查看 php 範例之前,請查看每個 MySql 使用者的權限,這是從我們組織的控制面板中獲取的:
至於 PHP 配置程式碼,它們看起來像這樣:
<?php $servername = "localhost"; $username = "<user name of the main MYSQL database>"; $password = "<pass word of the main user of the Main SQL database>"; $dbname = "<main Mysql Database>"; ?>
另外,請查看參考手冊中描述的官方權限:https ://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html