mysql資料庫通常包含關鍵的資料,為確保這些資料的安全和完整,需要利用訪問控制和使用者管理的功能。
mysql的安全基礎的是:使用者應該對他們需要的資料具有訪問權,而其它資料則無權訪問。
訪問控制:你只需要給使用者提供他們所需的訪問權,管理訪問控制需要建立和管理賬號。
mysql安裝完成後會建立乙個root使用者,它對整個mysql服務具有完全的控制權,不過在日常工作中,決不能使用root,應該建立一系列的賬號,有的給資料庫管理員使用、有的給使用者使用、有得給開發人員使用
mysql使用者賬號和資訊儲存在名為mysql的資料庫中的user表中。一般不需要使用它,當我們需要獲得所有使用者賬號列表時,可以訪問它,這個user表包含了所有的使用者賬號,其中user列儲存了所有登入名,新安裝的資料庫只有乙個root登入名
1、建立使用者賬號為了建立乙個新使用者賬號,使用greate user語句,如下:
在建立使用者時不需要口令,不過這個例子用identified by 'abcdef$$'給出了乙個口令,identified by指定的口令為純文字,mysql將在對其進行加密儲存。
當然,我們也可以更改口令,使用set password語句,新的口令必須使用password()函式進行加密。
set password for ben = password('abc1234');
2、重新命名乙個使用者賬號
rename user ben to bbb;
3、刪除乙個賬號
drop user bbb;
4、設定訪問許可權我們先來看一下剛才使用者為ben的許可權
提示它還沒有賦予任何許可權。它們只能登陸到mysql但是不能看到資料和執行任何資料庫操作。
下面我們對它分配許可權,使用grant語句:
grant要求給出要授予的許可權、被授予訪問許可權的資料庫或表、授予的使用者名稱
grant select on store.* to ben;
上面select是訪問許可權,store.*是store資料庫下面的所有表。to ben是把許可權賦予給名為ben的使用者。使用者ben對store資料庫中的所有表只有唯讀許可權。
我們再來看看ben使用者的許可權:可以看到剛才的分配許可權,生效了
同時我們在登陸ben這個賬號,發現可以訪問store資料庫了
grant的反操作為revoke,它是用來撤銷許可權的。下面舉個例子:
這條語句撤銷了剛剛賦予唯讀許可權的ben使用者,被撤銷的訪問許可權必須存在,否則會報錯。
revoke select on store.* from ben;
使用者剛才的唯讀許可權撤銷了
總結:許可權的賦予(grant)和撤銷(revoke)可以在幾個層次上控制許可權訪問:
1、整個伺服器,使用grant all和revoke all
2、整個資料庫,使用on databases.*
3、特定的表,使用on databases.table
4、特定的列
5、特定的儲存過程
關於具體的許可權,可以檢視mysql文件
mysql安全管理 MySQL安全管理
資料庫伺服器通常包含關鍵的資料,確保這些資料的安全和完整需要利用訪問控制。一 訪問控制 mysql伺服器的安全基礎 使用者應該對他們需要的資料具有適當的訪問權,既不能多也不能少。訪問控制 你需要給使用者提供他們所需的訪問權,且僅提供他們所需的訪問權。在日常工作中,絕不能使用root,應該建立一系列的...
mysql安全管理 MySQL 安全管理
1.使用者管理 mysql將帳戶儲存在系統資料庫mysql的user表,mysql使用者名稱最長可達32個字元 檢視所有使用者 select user,host,authentication string from user 檢視當前使用者的許可權 show grants 檢視gg使用者許可權 sh...
mysql登入安全管理 MySQL 安全管理
1.使用者管理 mysql將帳戶儲存在系統資料庫mysql的user表,mysql使用者名稱最長可達32個字元 檢視所有使用者 select user,host,authentication string from user 檢視當前使用者的許可權 show grants 檢視gg使用者許可權 sh...