Authentication

依賴 mysql_native_password 的身份驗證似乎也檢查 Linux 使用者?

  • July 27, 2021

我安裝了 mariaDB 10.3。mysql.table 指出“root”登錄依賴於 mysql_native_password 外掛,沒有設置密碼。

如果我的 linux 使用者是 root,我可以使用連接到 mysql;

mysql -u root -h localhost

如果我以非特權 Linux 使用者身份登錄,當我嘗試連接到 mysql 時,會出現以下錯誤:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

通常有這個問題的人有一個像 unix_sock 這樣的外掛啟用(例如看到這個回复),但我沒有。通過閱讀mysql_native_password 文件,我認為外掛不是問題。這個外掛似乎不依賴 Linux 使用者進行身份驗證(我不是英語母語,我可能錯過了重點)。

任何的想法 ?

正確的。只有root大多數基於 Linux 的系統上的帳戶才能作為帳戶連接到 MariaDB(和 MySQL)rootroot這是為了防止在 WordPress(或任何其他 CMS)安裝使用數據庫帳戶、受到損害並使攻擊者完全控制數據庫和連接到它的所有其他網站時,一次又一次地見證糟糕的身份驗證做法。

如果您想root從終端連接連接到 MariaDB,您將需要使用sudo

sudo mysql

在許多情況下,您不需要在此處指定使用者名,因為假定伺服器的系統管理員想要訪問root數據庫帳戶。

如果您需要管理員級別的帳戶來從外部工具(例如 PhpMyAdmin、TablePlus 或 MySQL Workstation)管理數據庫,您可以創建一個帳戶並授予適當的權限:

CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'superSecretPassword!123';
GRANT ALL ON *.* TO 'admin'@'%' WITH GRANT OPTION;

雖然此帳戶也可能被濫用,'root'@'localhost'但通常最好採用這種方式。

引用自:https://dba.stackexchange.com/questions/296214