我不是一個資深高手,只想描述普通人在項目中真正常見的問題,以及我的一些經驗!
? ? 很多時候,我們習慣了root 用戶來操作數據庫,這樣的操作,其實是很不安全的!舉例來說,開發(fā)在調試中經常拿著root賬戶修改數據,建表,刪除表,針對開發(fā)環(huán)境可能問題不大,測試環(huán)境那就稍微有點麻煩了,往小一點說,因為修改數據,導致測試工作認為的正向ok,但是實際上存在bug未驗證,往大來說,不小心誤刪除表,數據等,幾十個人等著修復環(huán)境,造成工作進度堵塞,再上升一個角度,那就到正式環(huán)境,如果這個時候再來一波root權限誤操作,那么就很精彩了!
? ? 話題扯的有些遠,直接上正文,簡單講講mysql的授權,以及我們企業(yè)環(huán)境授權的一些思路,就拿測試環(huán)境,以及復測環(huán)境來講講授權
? ? ?先列舉一下mysql的授權
? ? ?GRANT ALL PRIVILEGES ON *.* TO '你的賬戶'@'%' IDENTIFIED BY 'root' WITH?GRANT OPTION;
? ? ?如上的ALL PRIVILEGES指如下權限
? ? ? select,insert,update,delete,create,drop,references,index,alter,create?temporary?tables,lock tables,execute,create?view,
? ? ? ?show?view,create?routine,alter?routine,event,trigger
? ? ? ?如上如果存在疑問的,可以自行百度意義,在本文不做過多闡述。
? ? ? ? 如果你的權限真的是?ALL PRIVILEGES,那么大概率你在公司是非常核心的人員,但是正常來說,我們需要根據不同人員在不同場景,我簡單列舉一下企業(yè)中一般的角色授權情況
? ? ? ?拿測試環(huán)境舉例
? ? ? ? 開發(fā)人員:?grant select on *.* to 'develop'@'%' IDENTIFIED BY '密碼' with grant option; 給開發(fā)人員查詢的權限,用于問題排查。
? ? ? ? 測試人員:grant select,update on TABLE to 'test'@'%' IDENTIFIED BY '密碼' with grant option;因為部分場景下,測試人員可能會面對復雜的流程場景,以及配置信息修改等很多情況,給予一定的數據修改權限有時候是必要的,便于快捷的定位以及處理測試流程。
? ? ? ? 如果再嚴謹一些,可以按照每個人分別給予賬號,方便后期進行執(zhí)行追蹤
? ? ? ? 當然只是列舉一些簡單的場景,實際按照公司的需求,進行權限的分配,但是記得每次授權執(zhí)行flush privileges; 刷新生效