亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

MySQL數(shù)據(jù)庫在網(wǎng)絡(luò)安全方面的一些防御措施

添加時(shí)間:2014-2-20 17:13:23  添加: 思海網(wǎng)絡(luò) 
基于網(wǎng)絡(luò)的應(yīng)用也越來越多。網(wǎng)絡(luò)數(shù)據(jù)庫就是其中之一。通過一臺或幾臺服務(wù)器可以為很多客戶提供服務(wù),這種方式給人們帶來了很多方便,但也給不法分子造成了可乘之機(jī)。由于數(shù)據(jù)都是通過網(wǎng)絡(luò)傳輸?shù)模@就可以在傳輸?shù)倪^程中被截獲,或者通過非常手段進(jìn)入數(shù)據(jù)庫。由于以上原因,數(shù)據(jù)庫安全就顯得十分重要。因此,本文就以上問題討論了MySQL數(shù)據(jù)庫在網(wǎng)絡(luò)安全方面的一些措施。

  帳戶安全:

  帳戶是MySQL最簡單的安全措施。每一帳戶都由用戶名、密碼以及位置(一般由服務(wù)器名、IP或通配符)組成。如用戶john從server1進(jìn)行登錄可能和john從server2登錄的權(quán)限不同。

  MySQL的用戶結(jié)構(gòu)是用戶名/密碼/位置。這其中并不包括數(shù)據(jù)庫名。下面的兩條命令為database1和database2設(shè)置了select用戶權(quán)限。

  GRANT select ON database1.* to ’abc’@’server1’ IDENTIFIED BY ’password1’;

  GRANT select ON database2.* to ’abc’@’server1’ IDENTIFIED BY ’password2’;

  第一條命令設(shè)置了用戶abc在連接數(shù)據(jù)庫database1時(shí)使用password1。第二條命令設(shè)置了用戶abc在連接數(shù)據(jù)庫database2時(shí)使用password2。因此,用戶abc在連接數(shù)據(jù)庫database1和database2的密碼是不一樣的。

  上面的設(shè)置是非常有用的。如果你只想讓用戶對一個(gè)數(shù)據(jù)庫進(jìn)行有限的訪問,而對其它數(shù)據(jù)庫不能訪問,這樣可以對同一個(gè)用戶設(shè)置不同的密碼。如果不這樣做,當(dāng)用戶發(fā)現(xiàn)這個(gè)用戶名可以訪問其它數(shù)據(jù)庫時(shí),那將會(huì)造成麻煩。

  MySQL使用了很多授權(quán)表來跟蹤用戶和這些用戶的不同權(quán)限。這些表就是在mysql數(shù)據(jù)庫中的MyISAM表。將這些安全信息保存在MySQL中是非常有意義的。因此,我們可以使用標(biāo)準(zhǔn)的SQL來設(shè)置不同的權(quán)限。
關(guān)鍵字: MySQL內(nèi)核 數(shù)據(jù)庫安全配置 用戶認(rèn)證模塊 密碼恢復(fù) 存儲過程編寫 數(shù)據(jù)庫索引
內(nèi)容摘要:本文就以上問題討論了MySQL數(shù)據(jù)庫在網(wǎng)絡(luò)安全方面的一些措施。

  一般在MySQL數(shù)據(jù)庫中可以使用3種不同類型的安全檢查:

  ·登錄驗(yàn)證

  也就是最常用的用戶名和密碼驗(yàn)證。一但你輸入了正確的用戶名和密碼,這個(gè)驗(yàn)證就可通過。

  ·授權(quán)

  在登錄成功后,就要求對這個(gè)用戶設(shè)置它的具體權(quán)限。如是否可以刪除數(shù)據(jù)庫中的表等。

  ·訪問控制

  這個(gè)安全類型更具體。它涉及到這個(gè)用戶可以對數(shù)據(jù)表進(jìn)行什么樣的操作,如是否可以編輯數(shù)據(jù)庫,是否可以查詢數(shù)據(jù)等等。

  訪問控制由一些特權(quán)組成,這些特權(quán)涉及到所何使用和操作MySQL中的數(shù)據(jù)。它們都是布爾型,即要么允許,要么不允許。下面是這些特權(quán)的列表:

  ·select

  select是設(shè)定用戶是否可以使用select來查詢數(shù)據(jù)。如果用戶沒有這個(gè)特權(quán),那么就只能執(zhí)行一些簡單的select命令,如計(jì)算表達(dá)式(select 1 2),或是日期轉(zhuǎn)換(select Unix_TIMESTAMP(NOW( )))等。

  ·insert

  ·update

  ·INDEX

  INDEX決定用戶是否可以對表的索引進(jìn)行設(shè)置。如果用戶沒有這個(gè)權(quán)限,那么將無法設(shè)置表中的索引。

  ·alter

  ·create

  ·GRANT

  如果一個(gè)用戶擁有這個(gè)GRANT權(quán)限,那么他就可以將自己的權(quán)限授給別的用戶。也就是說,這個(gè)用戶可以和其它用戶共享自己的權(quán)限。

  ·REFERENCES

  有了REFERENCES權(quán)限,用戶就可以將其它表的一個(gè)字段作為某一個(gè)表的外鍵約束。

  除了以上的權(quán)限外,MySQL還有一些權(quán)限可以對整個(gè)MySQL進(jìn)行操作。

  ·Reload

  這個(gè)權(quán)限可以使用戶有權(quán)執(zhí)行各種FLUSH命令,如FLUSH TABLES, FLUSH STATUS等。

  ·Shutdown
關(guān)鍵字: MySQL內(nèi)核 數(shù)據(jù)庫安全配置 用戶認(rèn)證模塊 密碼恢復(fù) 存儲過程編寫 數(shù)據(jù)庫索引
內(nèi)容摘要:本文就以上問題討論了MySQL數(shù)據(jù)庫在網(wǎng)絡(luò)安全方面的一些措施。

  這個(gè)權(quán)限允許用戶關(guān)閉MySQL

  ·Process

  通過這個(gè)權(quán)限,用戶可以執(zhí)行SHOW PROCESSLIST和KILL命令。這些命令可以查看MySQL的處理進(jìn)程,可以通過這種方式查看SQL執(zhí)行的細(xì)節(jié)。

  ·File

  這個(gè)權(quán)限決定用戶是否可以執(zhí)行LOAD DATA INFILE命令。給用戶這個(gè)權(quán)限要慎重,因?yàn)橛羞@個(gè)權(quán)限的用戶可以將任意的文件裝載到表中,這樣對MySQL是十分危險(xiǎn)的。

  ·Super

  這個(gè)權(quán)限允許用戶終止任何查詢(這些查詢可能并不是這個(gè)用戶執(zhí)行的)。

  以上幾種權(quán)限是非常危險(xiǎn)的,在給用戶授權(quán)限時(shí)要非常謹(jǐn)慎。

  MySQL中的SSL

  以上的帳戶安全只是以普通的Socket進(jìn)行數(shù)據(jù)傳輸?shù)模@樣非常不安全。因此,MySQL在4.1版以后提供了對SSL(Secure Scokets Layer)的支持。MySQL使用的是免費(fèi)的OpenSSL庫。

  由于MySQL的Linux版本一般都是隨Linux本身一起發(fā)布,因此,它們默認(rèn)時(shí)都不使用SSL進(jìn)行傳輸數(shù)據(jù)。如果要打開SSL功能,需要對hava_openssl變量進(jìn)行設(shè)置:

  MySQL的Windows版本已經(jīng)將OpenSSL加入了。也面的命令是查看你的MySQL是否打開了SSL功能。

  SHOW VARIABLES like ’have_openssl’;

  --------------- -------

  | Variable_name | Value |

  --------------- -------

  | have_openssl | NO |

  --------------- -------

  1 row in set (0.00 sec)

  如果返回的是NO,那么說明你需要將OpenSSL編譯進(jìn)自己的MySQL在有時(shí)你可能需要將用戶名和密碼進(jìn)行加密傳輸。在這時(shí)可以使用下面GRANT命令:

  GRANT ALL PRIVILEGES ON ssl_only_db.

  * to ’abc’@’%’ IDENTIFIED BY "password!" REQUIRE SSL;
關(guān)鍵字: MySQL內(nèi)核 數(shù)據(jù)庫安全配置 用戶認(rèn)證模塊 密碼恢復(fù) 存儲過程編寫 數(shù)據(jù)庫索引


  還可以通過 REQUIRE x509 選項(xiàng)進(jìn)行SSL傳輸:

  GRANT ALL PRIVILEGES ON ssl_only_db.

  * to ’abc’@’%’ IDENTIFIED BY "password!" REQUIRE x509;

  你還可以使用REQUIRE SUBJECT來指定一個(gè)特定的客戶端證書來訪問數(shù)據(jù)庫。

  GRANT ALL PRIVILEGES ON ssl_only_db.* to ’abc’@’%’

  IDENTIFIED BY "password!"

  REQUIRE SUBJECT "/C=US/ST=New York/L=Albany/O=Widgets Inc./CN=client-ray.

  example.com/emailAddress=raymond@example.com";

  也許你并不關(guān)心使用的是什么客戶許可,而僅僅關(guān)心的是你的證書。那么你可以使用REQUIRE ISSUER來實(shí)現(xiàn):

  GRANT ALL PRIVILEGES ON ssl_only_db.

  * to ’abc’@’%’ IDENTIFIED BY "password!"

  REQUIRE ISSUER

  "/C=US/ST=New 20York/L=Albany/O=Widgets Inc./CN=cacert.example.

  com/emailAddress=admin@example.com";

  SSL還可以直接通過密碼進(jìn)行加密。可以使用REQUIRE CIPHER設(shè)置密碼。

  GRANT ALL PRIVILEGES ON ssl_only_db.

  * to ’abc’@’%’ IDENTIFIED BY "password!"

  REQUIRE CIPHER "EDH-RSA-DES-CBC3-SHA";

  上面使用了GRANT命令對用戶權(quán)限進(jìn)行設(shè)置。而這些信息都是保存在授權(quán)表中,這些表是安全系統(tǒng)的心臟。在這些表中保存了每一個(gè)用戶和客戶機(jī)所具有的權(quán)限。如果正確地操作這些表,將會(huì)對數(shù)據(jù)庫的安全起到積極的作用,而如果使用不慎,將是非常危險(xiǎn)的。
關(guān)鍵字: MySQL內(nèi)核 數(shù)據(jù)庫安全配置 用戶認(rèn)證模塊 密碼恢復(fù) 存儲過程編寫 數(shù)據(jù)庫索引
內(nèi)容摘要:本文就以上問題討論了MySQL數(shù)據(jù)庫在網(wǎng)絡(luò)安全方面的一些措施。

  下面讓我們來看看MySQL中的最要的5個(gè)授權(quán)表。

  user

  用戶表保存了用戶的權(quán)限和被加密的密碼。這個(gè)表負(fù)責(zé)確定哪些用戶和客戶機(jī)可以連接到服務(wù)器上。

  host

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

  db

  db表保存了數(shù)據(jù)庫層的權(quán)限信息。

  tables_priv

  這個(gè)表存儲了表的權(quán)限信息。

  columns_priv

  這個(gè)表保存了單獨(dú)列的權(quán)限信息。通過這個(gè)表,可以將操作某一列的權(quán)限授予一個(gè)用戶。

  哈希加密

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

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

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

  MySQL提供了4個(gè)函數(shù)用于哈希加密:PASSWORD, ENCRYPT, SHA1和MD5。下面讓我們試一試這4個(gè)函數(shù),看看會(huì)得到什么結(jié)果。我們以加密字符串"pa55word"為例進(jìn)行說明:
關(guān)鍵字: MySQL內(nèi)核 數(shù)據(jù)庫安全配置 用戶認(rèn)證模塊 密碼恢復(fù) 存儲過程編寫 數(shù)據(jù)庫索引
內(nèi)容摘要:本文就以上問題討論了MySQL數(shù)據(jù)庫在網(wǎng)絡(luò)安全方面的一些措施。

  讓我們先來看看MD5函數(shù):

  select MD5(’pa55word’);

  ----------------------------------

  | MD5(’pa55word’) |

  ----------------------------------

  | a17a41337551d6542fd005e18b43afd4 |

  ----------------------------------

  1 row in set (0.13 sec)

  下面是PASSWORD函數(shù):

  select PASSWORD(’pa55word’);

  ----------------------

  | PASSWORD(’pa55word’) |

  ----------------------

  | 1d35c6556b8cab45 |

  ----------------------

  1 row in set (0.00 sec)

  下面是ENCRYPT函數(shù):

  select ENCRYPT(’pa55word’);

  ---------------------

  | ENCRYPT(’pa55word’) |

  ---------------------

  | up2Ecb0Hdj25A |

  ---------------------

  1 row in set (0.17 sec)

  上面的每個(gè)函數(shù)都返回了一個(gè)加密后的字符串。為了區(qū)分加密字符串的大小寫,最好在使用ENCRYPT生成加密字符串時(shí),將這個(gè)字段定義成char BINARY類型。

  上面列舉了3種加密的方法,但我認(rèn)為使用MD5加密是最好的。這是因?yàn)檫@樣做可以將明文密碼顯示在處理列表中或是查詢?nèi)罩局校@樣便于跟蹤。如下面的insert語句使用插入了一條記錄,其中的密碼使用了MD5進(jìn)行加密:

  insert INTO table1 (user, pw) VALUE (’user1’, MD5(’password1’) )

  可以通過如下的語句進(jìn)行密碼驗(yàn)證:

  select * FROM table1 where user = ’user1’ AND pw = MD5(’password1’)

  哈希加密方法可以很好地對密碼進(jìn)行加密,使用了這種方法加密,密碼將無法恢復(fù)成明文。

關(guān)鍵字:MySQL、數(shù)據(jù)庫、數(shù)據(jù)庫

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項(xiàng)備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開網(wǎng)站