MySQL 筆記:建立使用者, 更改使用者權限
mysql 的使用者資料是建立在一個 table 當中,這個 table 記錄了所有可以使用這個 mysql 伺服器上的使用者的資料。當要登入 mysql 伺服器時,mysql 會根據這個 table 中使用者的帳號密碼去驗證目前登入的使用者是否為合法使用者。權限管理的概念也如同建立使用者資料。
而基於上述,新增使用者或更改使用者權限的方式出現了兩種,第一種是最基本的,也就是直接使用 mysql 官方提供的語法,例如:CREATE USER, GRANT 等等,而這些官方提供的方便語法執行後會立刻生效。
而第二種方法就是利用 INSERT, UPDATE, DELETE 等語法直接更改記錄使用者資料與權限的 table,但此種方法不會立刻生效,需要執行一到指令:FLUSH PRIVILEGES,這到指令有點像重新整理所有權限,一種重新載入所有使用者資料與使用者擁有權限的概念。
舉例:
- 建立使用者:
CREATE USER ‘newuser’@‘host’ IDENTIFIED BY ‘password’;
- 賦予使用者權限
GRANT ALL database.table TO ‘user’@‘host’
ALL: 權限,如果只有部分權限,則可直接指出(如:CREATE, UPDATE, SELECT...等)。
database.table: 決定要賦予的資料庫或表格。
‘user’@‘host'要賦予權限的對象。
- 更新使用者權限狀況:
FLUSH PRIVILEGES;
將以上上述的加入使用者或是賦予新權限的設定重新載入,使其生效。
總結:
- 新增使用者和更改使用者權限有兩種方式,分別是:自行插入table 和 使用官方提供的語法。
- 使用官方提供的語法執行後,設定會立刻生效。
- 使用直接更動 table 的方式,更動後的設定不會立刻生效,需要透過 flush privileges 指令重新載入所有設定後,才會生效.
留言
張貼留言