1. 程式人生 > >資料庫中使用者-刪庫有風險

資料庫中使用者-刪庫有風險

SQL中的使用者管理

之前在登陸資料時,一直使用的都是 root 使用者, root使用者是資料庫系統中的超級管理員,可以對資料庫做任何操作。

在生產環境中,開發人員一般只是對資料做讀取操作。root 使用者對於普通人來說,許可權太大了,如果不小心做了一些不可逆的操作。那麼後果是非常嚴重的。

所以 root 使用者不會讓開發人員使用,一般會由DBA或運維人員統一管理。給開發人員針對專案的資料庫建立專門的使用者來操作。

檢視所有使用者

MySQL中所有的使用者及許可權資訊都儲存在MySQL資料庫的user表中。

通過 desc user; 可以檢視user表的結構

主要欄位:

- Host 允許訪問的主機地址   localhost 為本機, % 為任何主機
- User 使用者名稱
- authentication_string     密碼,儲存的是加密後的值

檢視所有的使用者

select host ,user,authentication_string from user;

建立帳戶、授權

注:使用者管理操作的許可權 都是管理員來操作的,只能使用 root 使用者操作。

  • 常用許可權: create、alter、drop、insert、update、delete、select
  • 全部許可權: all privileges

語法:grant 許可權列表 on 資料庫 to '使用者名稱'@'訪問主機' identified by '密碼';

  • 建立賬戶並授予查詢許可權

    -- 加入testuser使用者,密碼123123,只能對jddb中的表做查詢操作
    grant select on jddb.* to 'testuser'@'localhost' identified by '123123';
    

     

 

檢視許可權

語法: show grants for 使用者名稱@主機地址

```sql
show grants for [email protected]
; ``` <img src='images/123.png'>

修改許可權

語法:grant 許可權名稱 on 資料庫 to 賬戶@主機 with grant option;

-- 將testuser許可權改為對所有庫有所有許可權 
grant all privileges on *.* to 'testuser'@'localhost' with grant option;

flush privileges;

刪除使用者

語法:drop user 使用者名稱@主機地址 drop user 'testuser'@'localhost';

使用者管理小結:

使用者管理是MySQL當中一塊非常重要的內容,它涉及到了資料的安全問題。 但是對於開發人員來講,這塊內容在實際工作中涉及又不多,因為資料庫的維護會有專門的運維人員或DBA來完成。 一般在操作資料時,不會使用root使用者。