資料庫中使用者-刪庫有風險
阿新 • • 發佈:2018-12-11
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使用者。