mysql 安全管理详情


1銆佸氨鎸夊崟浠嬬粛

MySQL鏈嶅姟鍣ㄧ殑瀹夊叏鍩虹鏄細鐢ㄦ埛搴旇瀵逛粬浠渶瑕佺殑鏁版嵁鍏锋湁閫傚綋鐨勮闂潈锛屾棦涓嶈兘澶氫篃涓嶈兘灏戙?/p>

鎹㈠彞璇濊锛岀敤鎴蜂笉鑳藉杩囧鐨勬暟鎹叿鏈夎繃澶氱殑璁块棶鏉冦?/p>

  • 澶氭暟鐢ㄦ埛鍙渶瑕佸琛ㄨ繘琛岃鍜屽啓锛屼絾灏戞暟鐢ㄦ埛鐢氳嚦闇瑕佽兘鍒涘缓鍜屽垹闄よ〃锛?/li>
  • 鏌愪簺鐢ㄦ埛闇瑕佽琛紝浣嗗彲鑳戒笉闇瑕佹洿鏂拌〃锛?/li>
  • 浣犲彲鑳芥兂鍏佽鐢ㄦ埛娣诲姞鏁版嵁锛屼絾涓嶅厑璁镐粬浠垹闄ゆ暟鎹紱
  • 鏌愪簺鐢ㄦ埛锛堢鐞嗗憳锛夊彲鑳介渶瑕佸鐞嗙敤鎴疯处鍙风殑鏉冮檺锛屼絾澶氭暟鐢ㄦ埛涓嶉渶瑕侊紱
  • 浣犲彲鑳芥兂璁╃敤鎴烽氳繃瀛樺偍杩囩▼璁块棶鏁版嵁锛屼絾涓嶅厑璁镐粬浠洿鎺ヨ闂暟鎹紱
  • 浣犲彲鑳芥兂鏍规嵁鐢ㄦ埛鐧诲綍鐨勫湴鐐归檺鍒跺鏌愪簺鍔熻兘鐨勮闂?/li>

杩欎簺閮藉彧鏄緥瀛愶紝浣嗘湁鍔╀簬璇存槑涓涓噸瑕佺殑浜嬪疄锛屽嵆浣犻渶瑕佺粰鐢ㄦ埛鎻愪緵浠栦滑鎵闇鐨勮闂潈锛屼笖浠呮彁渚涗粬浠墍闇鐨勮闂潈銆?/p>

杩欏氨鏄墍璋撶殑璁块棶鎺у埗锛岀鐞嗚闂帶鍒堕渶瑕佸垱寤哄拰绠$悊鐢ㄦ埛璐﹀彿銆?/p>

闃叉鏃犳剰鐨勯敊璇?閲嶈鐨勬槸娉ㄦ剰鍒帮紝璁块棶鎺у埗鐨勭洰鐨勪笉浠呬粎鏄槻姝㈢敤鎴风殑鎭舵剰浼佸浘銆?/p>

鏁版嵁姊﹂瓏鏇翠负甯歌鐨勬槸鏃犳剰璇嗛敊璇殑缁撴灉锛屽閿欐墦MySQL璇彞锛屽湪涓嶅悎閫傜殑鏁版嵁搴撲腑鎿嶄綔鎴栧叾浠栦竴浜涚敤鎴烽敊璇?/p>

閫氳繃淇濊瘉鐢ㄦ埛涓嶈兘鎵ц浠栦滑涓嶅簲璇ユ墽琛岀殑璇彞锛岃闂帶鍒舵湁鍔╀簬閬垮厤杩欎簺鎯呭喌鐨勫彂鐢?br /> 涓嶈浣跨敤root 搴旇涓ヨ們瀵瑰緟root鐧诲綍鐨勪娇鐢ㄣ備粎鍦ㄧ粷瀵归渶瑕佹椂浣跨敤瀹冿紙鎴栬鍦ㄤ綘涓嶈兘鐧诲綍鍏朵粬绠$悊璐﹀彿鏃朵娇鐢級銆?/p>

涓嶅簲璇ュ湪鏃ュ父鐨?code>MySQL鎿嶄綔涓娇鐢?code>root銆?br /> MySQL鐢ㄦ埛璐﹀彿鍜屼俊鎭瓨鍌ㄥ湪鍚嶄负mysql鐨凪ySQL鏁版嵁搴撲腑銆備竴鑸笉闇瑕佺洿鎺ヨ闂?code>mysql鏁版嵁搴撳拰琛紙浣犵◢鍚庝細鏄庣櫧杩欎竴鐐癸級锛屼絾鏈夋椂闇瑕佺洿鎺ヨ闂傞渶瑕佺洿鎺ヨ闂畠鐨勬椂鏈轰箣涓鏄湪闇瑕佽幏寰楁墍鏈夌敤鎴疯处鍙峰垪琛?br /> 鏃躲?/p>

涓烘锛屽彲浣跨敤浠ヤ笅浠g爜锛?/strong>

use mysql;
SELECT USER FROM user;

mysql鏁版嵁搴撴湁涓涓悕涓?code>user鐨勮〃锛屽畠鍖呭惈鎵鏈夌敤鎴疯处鍙枫?/p>

user琛ㄦ湁涓涓悕涓?code>user鐨勫垪锛屽畠瀛樺偍鐢ㄦ埛鐧诲綍鍚嶃傛柊瀹夎鐨勬湇鍔″櫒鍙兘鍙湁涓涓敤鎴凤紙濡傝繖閲屾墍绀猴級锛岃繃鍘诲缓绔嬬殑鏈嶅姟鍣ㄥ彲鑳藉叿鏈夊緢澶氱敤鎴?

鐢ㄥ涓鎴锋満杩涜璇曢獙 璇曢獙瀵圭敤鎴疯处鍙峰拰鏉冮檺杩涜鏇存敼鐨勬渶濂藉姙娉曟槸鎵撳紑澶氫釜鏁版嵁搴撳鎴锋満锛堝mysql鍛戒护琛屽疄鐢ㄧ▼搴忕殑澶氫釜鍓湰锛夛紝涓涓綔涓虹鐞嗙櫥褰曪紝鍏朵粬浣滀负琚祴璇曠殑鐢ㄦ埛鐧诲綍銆?/p>

2銆佸垱寤虹敤鎴?/h2>
CREATE USER ben IDENTIFIED by 'ben123456';


杩欐牱灏卞垱寤轰簡涓涓敤鎴枫?/p>

鎸囧畾鏁e垪鍙d护 IDENTIFIED BY鎸囧畾鐨勫彛浠や负绾枃鏈紝MySQL
灏嗗湪淇濆瓨鍒皍ser琛ㄤ箣鍓嶅鍏惰繘琛屽姞瀵嗐備负浜嗕綔涓烘暎鍒楀兼寚瀹氬彛
浠わ紝浣跨敤IDENTIFIED BY PASSWORD銆?br /> 浣跨敤GRANT鎴?code>INSERT GRANT璇彞锛堢◢鍚庝粙缁嶏級涔熷彲浠ュ垱寤虹敤鎴疯处鍙凤紝浣嗕竴鑸潵璇?code>CREATE USER鏄渶娓呮鍜屾渶绠鍗曠殑鍙ュ瓙銆傛澶栵紝涔熷彲浠ラ氳繃鐩存帴鎻掑叆琛屽埌user琛ㄦ潵澧炲姞鐢ㄦ埛锛屼笉杩囦负瀹夊叏璧疯锛屼竴鑸笉寤鸿杩欐牱鍋氥?/p>

MySQL鐢ㄦ潵瀛樺偍鐢ㄦ埛璐﹀彿淇℃伅鐨勮〃锛堜互鍙婅〃妯″紡绛夛級鏋佷负閲嶈锛屽瀹冧滑鐨勪换浣曟瘉鍧忛兘鍙兘涓ラ噸鍦颁激瀹冲埌MySQL鏈嶅姟鍣ㄣ傚洜姝わ紝鐩稿浜庣洿鎺ュ鐞嗘潵璇达紝鏈濂芥槸鐢ㄦ爣璁板拰鍑芥暟鏉ュ鐞嗚繖浜涜〃

涓洪噸鏂板懡鍚嶄竴涓敤鎴疯处鍙凤紝浣跨敤RENAME USER璇彞锛屽涓嬫墍绀猴細

RENAME USER ben to zhangsan;


MySQL 5涔嬪墠 浠匨ySQL 5鎴栦箣鍚庣殑鐗堟湰鏀寔RENAME USER銆備负浜嗗湪浠ュ墠鐨凪ySQL涓噸鍛藉悕涓涓敤鎴凤紝鍙娇鐢║PDATE鐩存帴鏇存柊user琛ㄣ?/p>

3銆佸垹闄ょ敤鎴疯处鍙?/h2>
DROP USER zhangsan;


娉ㄦ剰:

MySQL 5涔嬪墠 鑷狹ySQL 5浠ユ潵锛孌ROP USER鍒犻櫎鐢ㄦ埛璐﹀彿鍜屾墍鏈夌浉鍏崇殑璐﹀彿鏉冮檺銆傚湪MySQL 5浠ュ墠锛孌ROP USER鍙兘鐢ㄦ潵
鍒犻櫎鐢ㄦ埛璐﹀彿锛屼笉鑳藉垹闄ょ浉鍏崇殑鏉冮檺銆傚洜姝わ紝濡傛灉浣跨敤鏃х増鏈殑MySQL锛岄渶瑕佸厛鐢≧EVOKE鍒犻櫎涓庤处鍙风浉鍏崇殑鏉冮檺锛岀劧鍚?br /> 鍐嶇敤DROP USER鍒犻櫎璐﹀彿銆?/p>

4銆佽闂潈闄?/h2>

鍦ㄥ垱寤虹敤鎴疯处鍙峰悗锛屽繀椤绘帴鐫鍒嗛厤璁块棶鏉冮檺銆傛柊鍒涘缓鐨勭敤鎴疯处鍙锋病鏈夎闂潈闄愩傚畠浠兘鐧诲綍MySQL锛屼絾涓嶈兘鐪嬪埌鏁版嵁锛屼笉鑳芥墽琛屼换浣曟暟鎹簱鎿嶄綔銆?/p>

CREATE USER zhangsan IDENTIFIED by 'zhang123456';


涓虹湅鍒拌祴浜堢敤鎴疯处鍙风殑鏉冮檺锛屼娇鐢?code>SHOW GRANTS FOR锛?strong>濡備笅鎵绀猴細

SHOW GRANTS FOR 'zhangsan';


缁撴灉:

GRANT USAGE ON *.* TO 'zhangsan'@'%' IDENTIFIED BY PASSWORD '*557661E2A88A816A3155408E5D15997A8C5C7D25'


鏄剧ず娌℃湁浠讳綍鏉冮檺銆?/p>

USAGE琛?绀烘牴鏈病鏈夋潈闄愶紙鎴戠煡閬擄紝杩欎笉寰堢洿瑙傦級锛屾墍浠ワ紝姝ょ粨鏋滆〃绀哄湪浠绘剰鏁版嵁搴撳拰浠绘剰琛ㄤ笂瀵逛换浣曚笢瑗挎病鏈夋潈闄愩?/p>

鐢ㄦ埛瀹氫箟涓簎ser@host MySQL鐨勬潈闄愮敤鐢ㄦ埛鍚嶅拰涓绘満鍚嶇粨鍚堝畾涔夈傚鏋滀笉鎸囧畾涓绘満鍚嶏紝鍒欎娇鐢ㄩ粯璁ょ殑涓绘満鍚?锛堟巿浜堢敤鎴疯闂潈闄愯屼笉绠′富鏈哄悕锛?/p>

涓鸿缃潈闄愶紝浣跨敤GRANT璇彞銆侴RANT瑕佹眰浣犺嚦灏戠粰鍑轰互涓嬩俊鎭細

  • 瑕佹巿浜堢殑鏉冮檺锛?/li>
  • 琚巿浜堣闂潈闄愮殑鏁版嵁搴撴垨琛紱
  • 鐢ㄦ埛鍚嶃?/li>

浠ヤ笅渚嬪瓙缁欏嚭GRANT鐨勭敤娉曪細

GRANT SELECT ON test.* to zhangsan;


鐒跺悗:

SHOW GRANTS FOR zhangsan;
GRANT SELECT ON `test`.* TO 'zhangsan'@'%'


姣忎釜GRANT娣诲姞锛堟垨鏇存柊锛夌敤鎴风殑涓涓潈闄愩侻ySQL璇诲彇鎵鏈夋巿鏉冿紝骞舵牴鎹畠浠‘瀹氭潈闄愩?/p>

GRANT鐨勫弽鎿嶄綔涓篟EVOKE锛岀敤瀹冩潵鎾ら攢鐗瑰畾鐨勬潈闄愩備笅闈妇涓涓緥瀛愶細

REVOKE SELECT ON test.* FROM zhangsan;


杩欐潯REVOKE璇彞鍙栨秷鍒氳祴浜堢敤鎴穊forta鐨凷ELECT璁块棶鏉冮檺銆傝鎾ら攢鐨勮闂潈闄愬繀椤诲瓨鍦紝鍚﹀垯浼氬嚭閿欍?/p>

GRANT鍜孯EVOKE鍙湪鍑犱釜灞傛涓婃帶鍒惰闂潈闄愶細

  • 鏁翠釜鏈嶅姟鍣紝浣跨敤GRANT ALL鍜孯EVOKE ALL锛?/li>
  • 鏁翠釜鏁版嵁搴擄紝浣跨敤ON database.*锛?/li>
  • 鐗瑰畾鐨勮〃锛屼娇鐢∣N database.table锛?/li>
  • 鐗瑰畾鐨勫垪锛?/li>
  • 鐗瑰畾鐨勫瓨鍌ㄨ繃绋嬨?/li>

绀轰緥:

ALL 闄RANT OPTION澶栫殑鎵鏈夋潈闄?
ALTER 浣跨敤ALTER TABLE
ALTER ROUTINE 浣跨敤ALTER PROCEDURE鍜孌ROP PROCEDURE
CREATE 浣跨敤CREATE TABLE
CREATE ROUTINE 浣跨敤CREATE PROCEDURE
CREATE TEMPORARY 
TABLES
浣跨敤CREATE TEMPORARY TABLE
CREATE USER 浣跨敤CREATE USER銆丏ROP USER銆丷ENAME USER鍜孯EVOKE
ALL PRIVILEGES
CREATE VIEW 浣跨敤CREATE VIEW
DELETE 浣跨敤DELETE
DROP 浣跨敤DROP TABLE
EXECUTE 浣跨敤CALL鍜屽瓨鍌ㄨ繃绋?
FILE 浣跨敤SELECT INTO OUTFILE鍜孡OAD DATA INFILE
GRANT OPTION 浣跨敤GRANT鍜孯EVOKE
INDEX 浣跨敤CREATE INDEX鍜孌ROP INDEX
INSERT 浣跨敤INSERT
LOCK TABLES 浣跨敤LOCK TABLES
PROCESS 浣跨敤SHOW FULL PROCESSLIST
RELOAD 浣跨敤FLUSH
REPLICATION CLIENT 鏈嶅姟鍣ㄤ綅缃殑璁块棶
REPLICATION SLAVE 鐢卞鍒朵粠灞炰娇鐢?
SELECT 浣跨敤SELECT
SHOW DATABASES 浣跨敤SHOW DATABASES
SHOW VIEW 浣跨敤SHOW CREATE VIEW
SHUTDOWN 浣跨敤mysqladmin shutdown锛堢敤鏉ュ叧闂璏ySQL锛?
SUPER 浣跨敤CHANGE MASTER銆並ILL銆丩OGS銆丳URGE銆丮ASTER
鍜孲ET GLOBAL銆傝繕鍏佽mysqladmin璋冭瘯鐧诲綍
UPDATE 浣跨敤UPDATE
USAGE 鏃犺闂潈闄?


浣跨敤GRANT鍜?code>REVOKE锛屼綘鑳藉鐢ㄦ埛鍙互
灏变綘鐨勫疂璐垫暟鎹仛浠涔堜簨鎯呭拰涓嶈兘鍋氫粈涔堜簨鎯呭叿鏈夊畬鍏ㄧ殑鎺у埗銆?/p>

鏈潵鐨勬巿鏉?鍦ㄤ娇鐢℅RANT鍜孯EVOKE鏃讹紝鐢ㄦ埛璐﹀彿蹇呴』瀛樺湪锛屼絾瀵规墍娑夊強鐨勫璞℃病鏈夎繖涓姹傘?/p>

杩欏厑璁哥鐞嗗憳鍦ㄥ垱寤烘暟鎹簱鍜岃〃涔嬪墠璁捐鍜屽疄鐜板畨鍏ㄦ帾鏂姐?/p>

杩欐牱鍋氱殑鍓綔鐢ㄦ槸锛屽綋鏌愪釜鏁版嵁搴撴垨琛ㄨ鍒犻櫎鏃讹紙鐢―ROP璇彞锛夛紝鐩稿叧鐨勮闂潈闄愪粛鐒跺瓨鍦ㄣ傝屼笖锛屽鏋滃皢鏉ラ噸鏂板垱寤鸿鏁版嵁搴撴垨琛紝杩欎簺鏉冮檺浠嶇劧璧蜂綔鐢ㄣ?/p>

绠鍖栧娆℃巿鏉?鍙氳繃鍒楀嚭鍚勬潈闄愬苟鐢ㄩ楀彿鍒嗛殧锛屽皢澶氭潯GRANT璇彞涓插湪涓璧凤紝濡備笅鎵绀猴細

GRANT SELECT, INSERT ON test.* to zhangsan;

5銆佹洿鏀瑰彛浠?/h2>

涓轰簡鏇存敼鐢ㄦ埛鍙d护锛屽彲浣跨敤SET PASSWORD璇彞銆傛柊鍙d护蹇呴』濡備笅鍔犲瘑锛?/strong>

SET PASSWORD FOR zhangsan = PASSWORD('zhangsan');

淇敼褰撳墠鐢ㄦ埛鐨勫彛浠?

SET PASSWORD  = PASSWORD('root');

鍒版杩欑瘒鍏充簬mysql 瀹夊叏绠$悊璇︽儏鐨勬枃绔犲氨浠嬬粛鍒拌繖浜?鏇村鐩稿叧mysql 瀹夊叏绠$悊鍐呭璇锋悳绱㈣剼鏈箣瀹朵互鍓嶇殑鏂囩珷鎴栫户缁祻瑙堜笅闈㈢殑鐩稿叧鏂囩珷甯屾湜澶у浠ュ悗澶氬鏀寔鑴氭湰涔嬪锛?/p>