mysql------安全性問題

一, information_schema 數據庫內容說明

information_schema 數據庫:mysql 5.0以上版本所有
作用:放架構信息,是一個“字典”(存放各個用戶的權限,每個數據庫的內容)

  • SQL注入時會經常對這個數據庫操作 —>通過SQL語句可以獲知後臺系統有那些表,庫,內容

【例如】如果網站有SQL注入的漏洞—>通過sql查詢一個管理員用戶 —>上傳php木馬---->反彈shell

  • 一般後端會過濾不顯示SQL查詢結果

內容

  • 在這裏插入圖片描述

二. mysql.user表內容

該表存放了數據庫的用戶信息,如user host password等信息

【【【【mysql.usr    存放登錄mysql用戶的信息-->sql注入的目標】】】
			1.user字段爲空的,刪了就好
			2.host有
							允許本機登錄:localhost
							允許域登錄:localdomain
							IP:127.0.0.1   | 允許的IP
  • 在這裏插入圖片描述

該表還儲存了用戶的權限說明

  • 在這裏插入圖片描述

三,數據庫安全問題

1. 修改mysql密碼

默認空密碼【即只允許本機登錄】 -->需要網絡連接 --> 修改管理員密碼

☞way1 在shell裏

mysqladmin -u root -p password “密碼”

設置完儲存在 mysql.user表中爲加密後的數據

  • 在這裏插入圖片描述
☞way2 修改mysql.user表中的數據

update mysql.user set password=password(‘新密碼’) where user=‘指定用戶’ and host=‘指定主機類型’;

password=password(‘密碼’)
      第一個password是修改密碼列
      ?第二個password是對修改的密碼進行加密處理的函數,若不帶,則以明文的形式儲存在user表中!!       
  • 在這裏插入圖片描述

修改完更新數據庫的權限表 FLUSH PRIVILEGES;

2. mysql管理員root賬號密碼遺忘

☞way1 殺死進程,繞過grant權限表,實現無口令登錄後修改密碼
  • ①殺掉進程

在shenll中 killall -TERM mysqld

  • ②增加一個後臺,繞過grant權限表

mysqld_safe --skip-grant-tables &
這條命令要在本機或者遠程登錄(ssh)才能執行在這裏插入圖片描述

  • ③可以無口令登錄

    在這裏插入圖片描述

  • ④修改user表密碼數據, 刷新數據 , 退出數據庫並重啓mysqld服務


☞way2 修改配置文件,添加skip-grant-tables ,實現無口令登錄後修改密碼
  • ①修改配置文件

在這裏插入圖片描述

  • ②重啓mysqld服務
  • ②實現無口令登錄,修改user表password數據,刷新數據,退出數據庫

在這裏插入圖片描述

  • ④刪掉跳過grant權限表那一行,重啓mysqld服務

3. 添加數據庫用戶

☞way1在mysql.user中添加數據
  • 在這裏插入圖片描述

??這樣賦予權限,權限很大,對所有庫,表都可操作【沒有指定庫,表】

☞way2 用CREATE USER語句添加

CREATE USER ‘用戶名’@‘host內容’ IDENTIFIED BY ‘設置登錄密碼’;

  • 在這裏插入圖片描述

3.用戶授權(增刪查改)、

①新用戶授權(不存在的用戶):

mysql> GRANT 權限列表 ON 庫或表 TO ‘用戶名’@‘登錄IP或域名’ IDENTIFIED BY ‘設置登錄密碼’;

權限列表:
    	all——所有權限
       select,insert,update,drop,delete,create等
庫或表:
		*.*——所有庫,所有表	
登錄IP或域名:
		%——表示沒有限制,在任何主機都可以登錄
		192.168.120.%——表示在192.168.120.0網段可以登錄
②老用戶授權:

mysql> GRANT 權限列表 ON 庫或表 TO ‘用戶名’@‘登錄IP或域名’;

③查看用戶權限

SHOW GRANTS FOR ‘用戶名’@‘登錄IP或域名’;

  • 在這裏插入圖片描述
④撤銷權限

REVOKE 權限列表 ON 庫.表 FROM ‘用戶’@‘登錄IP或域名’;

???這裏的用戶必須存在
  • 在這裏插入圖片描述

4.網絡連接權限

作爲web部署框架的後端數據庫,在網絡連接方面尤爲重要。

  • 在這裏插入圖片描述
遠程連接mysql命令

mysql -h 指定要連接的IP -P 指定的端口 -u 有遠端登錄的用戶名 -p登錄口令

默認端口爲3306

  • 在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章