程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL 數據庫中的安全解決方案(4)

MySQL 數據庫中的安全解決方案(4)

編輯:關於MYSQL數據庫

    提示:隨著網絡的普及,基於網絡的應用也越來越多。網絡數據庫就是其中之一。通過一台或幾台服務器可以為很多客戶提供服務,這種方式給人們帶來了很多方便,但也給不法分子造成了可乘之機。由於數據都是通過網絡傳輸的,這就可以在傳輸的過程中被截獲,或者通過非常手段進入數

 

 下面讓我們來看看MySQL中的最要的5個授權表。

  user

  用戶表保存了用戶的權限和被加密的密碼。這個表負責確定哪些用戶和客戶機可以連接到服務器上。

  host

  這個表為每一個客戶機分配權限,它並不考慮用戶的權限。MySQL在確定是否接收還是拒絕一個連接時,首先考慮的是user表。而使用GRANT或REVOKE命令並不影響host表,我們可以通過手工方式修改這個表中的內容。

  db

  db表保存了數據庫層的權限信息。

  tables_priv

  這個表存儲了表的權限信息。

  columns_priv

  這個表保存了單獨列的權限信息。通過這個表,可以將操作某一列的權限授予一個用戶。

  哈希加密

  如果數據庫保存了敏感的數據,如銀行卡密碼,客戶信息等,你可能想將這些數據以加密的形式保存在數據庫中。這樣即使有人進入了你的數據庫,並看到了這些數據,也很難獲得其中的真實信息。

  在應用程序的大量信息中,也許你只想交很小的一部分進行加密,如用戶的密碼等。這些密碼不應該以明文的形式保存,它們應該以加密的形式保存在數據庫中。一般情況下,大多數系統,這其中包括MySQL本身都是使用哈希算法對敏感數據進行加密的。

  哈希加密是單向加密,也就是說,被加密的字符串是無法得到原字符串的。這種方法使用很有限,一般只使用在密碼驗證或其它需要驗證的地方。在比較時並不是將加密字符串進行解密,而是將輸入的字符串也使用同樣的方法進行加密,再和數據庫中的加密字符串進行比較。這樣即使知道了算法並得到了加密字符串,也無法還原最初的字符串。銀行卡密碼就是采用的這種方式進行加密。

  MySQL提供了4個函數用於哈希加密:PASSWORD, ENCRYPT, SHA1和MD5。下面讓我們試一試這4個函數,看看會得到什麼結果。我們以加密字符串"pa55Word"為例進行說明:

  讓我們先來看看MD5函數

 
 SELECT MD5('pa55Word');
  +----------------------------------+
  | MD5('pa55Word') |
  +----------------------------------+
  | a17a41337551d6542fd005e18b43afd4 |
  +----------------------------------+
  1 row in set (0.13 sec)

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved