本篇內(nèi)容介紹了“如何確保數(shù)據(jù)庫中的數(shù)據(jù)安全”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
本篇內(nèi)容介紹了“如何確保數(shù)據(jù)庫中的數(shù)據(jù)安全”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
你所需要的網(wǎng)站建設(shè)服務(wù),我們均能行業(yè)靠前的水平為你提供.標(biāo)準(zhǔn)是產(chǎn)品質(zhì)量的保證,主要從事成都網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)網(wǎng)站建設(shè)、手機(jī)網(wǎng)站制作設(shè)計、網(wǎng)頁設(shè)計、成都品牌網(wǎng)站建設(shè)、網(wǎng)頁制作、做網(wǎng)站、建網(wǎng)站。創(chuàng)新互聯(lián)擁有實(shí)力堅強(qiáng)的技術(shù)研發(fā)團(tuán)隊及素養(yǎng)的視覺設(shè)計專才。
數(shù)據(jù)庫安全有兩個方面:一是數(shù)據(jù)庫物理安全,指的是運(yùn)行數(shù)據(jù)庫的、傳輸數(shù)據(jù)的線路等設(shè)備的正常運(yùn)行,不被外力破壞、不因網(wǎng)絡(luò)擁塞而不可用、預(yù)防因元器件老化而造成損失;二是數(shù)據(jù)庫邏輯安全,數(shù)據(jù)庫中最重要的是數(shù)據(jù),要保證數(shù)據(jù)不因黑客入侵而丟失或泄露,不因程序崩潰而損壞,數(shù)據(jù)存儲方式合理有序,存取方便快捷。
對數(shù)據(jù)的安全保障包括幾個方面,分別為數(shù)據(jù)獨(dú)立性、數(shù)據(jù)安全性、數(shù)據(jù)完整性、并發(fā)控制、故障恢復(fù)等。
數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性兩個方面。物理獨(dú)立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中的數(shù)據(jù)是相互獨(dú)立的,邏輯獨(dú)立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的。
數(shù)據(jù)安全性要求數(shù)據(jù)需要按照需求以一定結(jié)構(gòu)合理存儲,利用訪問控制增加數(shù)據(jù)被竊取的可能性,利用加密存儲增加對數(shù)據(jù)竊取的犯罪成本,從而減少風(fēng)險。
數(shù)據(jù)完整性包括數(shù)據(jù)的正確性、有效性和一致性。正確性是指數(shù)據(jù)的輸入值與數(shù)據(jù)表對應(yīng)域的數(shù)值、類型相同;有效性是指數(shù)據(jù)庫中的數(shù)值約束滿足現(xiàn)實(shí)應(yīng)用中對該數(shù)值段的理論范圍;一致性是指不同用戶對同一數(shù)據(jù)的使用方法和理解應(yīng)該是一樣的。
并發(fā):當(dāng)多個用戶同時訪問數(shù)據(jù)庫的同一資源時,多個資源的讀寫順序不同將導(dǎo)致不同的結(jié)果,因此需要并發(fā)控制。當(dāng)一位用戶正在連續(xù)操作該數(shù)據(jù)時,有另一位用戶中途讀出改數(shù)據(jù),則會讀到不正確的數(shù)據(jù),被稱為數(shù)據(jù)臟讀。這時就需要對這種并發(fā)操作施行控制,排除和避免這種錯誤的發(fā)生,保證數(shù)據(jù)的正確性。
故障恢復(fù):數(shù)據(jù)庫因軟件原因(如計算機(jī)病毒、網(wǎng)絡(luò)不穩(wěn)定、程序Bug、誤操作等)或物理原因(如突然斷電、自然災(zāi)害、硬件老化等)導(dǎo)致數(shù)據(jù)的損壞,應(yīng)存在一種恢復(fù)機(jī)制,使損失降到最小。01 安全配置
1. 修改Root用戶口令,刪除空口令
在MySQL控制臺中執(zhí)行如下代碼,將newpass換成實(shí)際的口令即可。mysql> SET PASSWORD FOR‘root’@’lo calhost’=PASSWORD(’newpass’); Query OK,0 rows affected,1 warning(0.01 sec)
2. 刪除默認(rèn)數(shù)據(jù)庫和數(shù)據(jù)庫用戶
MySQL默認(rèn)安裝后帶有test等數(shù)據(jù)庫用于測試,可能帶來不安全因素,因此將其移除,如下:mysql> DROP DATABASE test; Query OK,0 rows affected(0.00 sec)
有些MySQL數(shù)據(jù)庫的匿名用戶的口令為空。因而,任何人都可以連接到這些數(shù)據(jù)庫??梢杂孟旅娴拿钸M(jìn)行檢查:mysql> select * frommysql.user where user="";
3. 改變默認(rèn)MySQL管理員帳號
首先創(chuàng)建一個與Root用戶權(quán)限一樣的用戶。如下所示:mysql> GRANT ALL PRIVILEGES ON *.* TO 'new_admin'@'127.0.0.1' IDENTIFIED BY 'password'; Query OK,0 rows affected,1 warning(0.02 sec)
刪除默認(rèn)的Root用戶,如下。mysql> drop user root@'127.0.0.1'; mysql> drop user root@'lo calhost'; mysql> drop user root@'::1'; Query OK,0 rows affected(0.04 sec)
4. 使用獨(dú)立用戶運(yùn)行MySQL
在一個安全系統(tǒng)中使用一個權(quán)限較低的獨(dú)立系統(tǒng)用戶運(yùn)行MySQL,即使在MySQL存在安全問題時,也能有效地阻止黑客進(jìn)一步入侵。
5. 禁止遠(yuǎn)程連接數(shù)據(jù)庫
在my.cnf或my.ini的[mysqld]部分配置如下參數(shù),可以關(guān)閉在TCP/IP端口上的監(jiān)聽進(jìn)而達(dá)到保證安全的效果。skip-networking
也可以僅監(jiān)聽本機(jī),方法是在my.cnf的[mysqld]部分增加下面一行。bind-address=127.0.0.1
若不得不啟用遠(yuǎn)程連接數(shù)據(jù)庫,則可以對目標(biāo)的主機(jī)給予有限的訪問許可。mysql>GRANT SELECT,INSERT ON mydb.* TO 'username'@'host_ip';
6. 限制連接用戶的數(shù)量
限制最大連接數(shù),可以增加黑客暴力攻擊數(shù)據(jù)庫所需時間,增加攻擊被發(fā)現(xiàn)的可能性,從而增加安全性。
可以在my.ini或my.cnf查找max_connections=100,修改為max_connections=1000服務(wù)里重啟MySQL。或用如下命令修改最大連接數(shù)。mysql> set GLOBAL max_connections=100; Query OK,0 rows affected(0.00 sec)
7. 用戶目錄權(quán)限限制
安裝時,MySQL以Root用戶權(quán)限進(jìn)行安裝,軟件默認(rèn)都為Root權(quán)限。
安裝完畢后,需要將數(shù)據(jù)目錄權(quán)限設(shè)置為實(shí)際運(yùn)行MySQL的用戶權(quán)限,如下。chown –R mysql:mysql/home/mysql/data
8. 命令歷史記錄保護(hù)
MySQL在用戶的主目錄下會生成一個.mysql_history的文件,該文件記錄用戶敲過的每條命令。該文件可能泄露數(shù)據(jù)庫結(jié)構(gòu)甚至密碼等敏感信息,因此,要及時清除或阻止該文件的生成。
可以通過將日志文件定向到/dev/null的方法,阻止該文件的生成。$export MYSQL_HISTFILE=/dev/null
9. 禁止MySQL對本地文件存取
LOAD DATA LOCAL INFILE可以從文件系統(tǒng)中讀取文件,并顯示在屏幕中或保存在數(shù)據(jù)庫中。結(jié)合注入漏洞可以實(shí)現(xiàn)進(jìn)一步的攻擊??梢栽趍y.cnf配置文件中的[mysqld]部分增加下面一行以禁止這一功能。set-variable=lo cal-infile=0
10. MySQL服務(wù)器權(quán)限控制
數(shù)據(jù)庫架構(gòu)在服務(wù)器之上,服務(wù)器安全是數(shù)據(jù)庫安全的基本保證。服務(wù)器上眾多軟件的權(quán)限控制合理,也是數(shù)據(jù)庫安全的必要保障。
11. MySQL數(shù)據(jù)庫權(quán)限控制
不僅是服務(wù)器有不同的權(quán)限控制,MySQL 數(shù)據(jù)庫內(nèi)部也應(yīng)有嚴(yán)格的權(quán)限控制機(jī)制,針對不同的用戶,應(yīng)設(shè)置不同的權(quán)限。MySQL內(nèi)置了CREATE、DROP、GRANT OPTION、REFERENCES等26種操作權(quán)限的控制,面向表、列、過程等對象,令每一位用戶的每一條查詢都有明確的權(quán)限界定,絕不越界。
為了安全考慮,設(shè)定權(quán)限時需要遵循以下幾個原則。
(1)只授予能滿足需要的最小權(quán)限,防止用戶干壞事。例如,用戶只是需要查詢,那就只給select權(quán)限就可以了,不要給用戶賦予update、insert或delete權(quán)限。
(2)創(chuàng)建用戶的時候限制用戶的登錄主機(jī),一般是限制成指定IP或內(nèi)網(wǎng)IP段。
(3)初始化數(shù)據(jù)庫的時候刪除沒有密碼的用戶。安裝完數(shù)據(jù)庫的時候會自動創(chuàng)建一些用戶,這些用戶默認(rèn)沒有密碼。
(4)為每個用戶設(shè)置滿足密碼復(fù)雜度的密碼。
(5)定期清理不需要的用戶,回收權(quán)限或刪除用戶。02 MySQL數(shù)據(jù)庫加密
數(shù)據(jù)庫中的很多敏感字段,不允許隨意查看,開發(fā)人員、運(yùn)維人員甚至是數(shù)據(jù)庫管理員也不允許查看,因此,要對數(shù)據(jù)庫數(shù)據(jù)進(jìn)行加密存放,更主要的是防止黑客脫庫。
開發(fā)人員負(fù)責(zé)程序和加密算法的開發(fā)部署,運(yùn)維人員負(fù)責(zé)配置程序的安裝和密鑰的配置,但與數(shù)據(jù)庫不直接接觸,數(shù)據(jù)庫管理員負(fù)責(zé)數(shù)據(jù)庫的維護(hù)和管理,但不知道密鑰以及加密算法,無法解密數(shù)據(jù)庫中的數(shù)據(jù)內(nèi)容。通過這樣的分塊管理,保證數(shù)據(jù)庫數(shù)據(jù)的安全。
運(yùn)行如下SQL語句:INSERT INTO `admin`(`id`,`name`,`pass`)VALUES('1','admin',AES_ENCRYPT('admin','key'))
插入到表中的數(shù)據(jù)如圖1所示。
圖1 插入表中的數(shù)據(jù)
通過查詢語句:SELECT `id`,`name`,AES_DECRYPT(`pass`,'key')FROM `admin`
可以看到表中內(nèi)容,如圖2所示。
圖2 查詢表中內(nèi)容
而通常 key 通過配置文件得到,數(shù)據(jù)庫管理無法得知 key,因此,即使能看到數(shù)據(jù)集,也得不到用戶密碼。黑客即使脫庫,在沒有key的情況下用戶數(shù)據(jù)仍處于較安全狀態(tài)。03 數(shù)據(jù)庫審計
數(shù)據(jù)庫審計(DBAudit),是實(shí)時記錄數(shù)據(jù)庫活動情況,對數(shù)據(jù)庫操作進(jìn)行分析審查,用來發(fā)現(xiàn)可能遭受或正在遭受的攻擊,并及時處理的一種安全保障措施。
審計記錄包括有關(guān)已審計的操作、執(zhí)行操作的用戶以及操作的時間和日期的信息。審計記錄可以存儲在數(shù)據(jù)庫審計線索中或操作系統(tǒng)上的文件中。標(biāo)準(zhǔn)審計包括有關(guān)權(quán)限、模式、對象和語句的操作。
通過審計分析,可以得知數(shù)據(jù)庫的運(yùn)行狀況、數(shù)據(jù)庫命令的執(zhí)行情況、最慢SQL語句、訪問量最大SQL語句、最大吞吐量、最大并發(fā)數(shù)等情況,用于系統(tǒng)的優(yōu)化??删_定位錯誤和入侵,便于系統(tǒng)維護(hù)和加固,便于取證和追責(zé)。04 數(shù)據(jù)庫漏洞掃描
數(shù)據(jù)庫漏洞掃描是對數(shù)據(jù)庫系統(tǒng)進(jìn)行自動化安全評估的專業(yè)技術(shù),在獲得一個能全面覆蓋數(shù)據(jù)庫安全隱患的知識庫前提下,對應(yīng)每一條安全漏洞知識,預(yù)定義掃描策略集合,利用該集合匹配目標(biāo)數(shù)據(jù)庫系統(tǒng),從而發(fā)現(xiàn)其中的問題和缺陷。根據(jù)已有知識庫中的知識,評判該漏洞危害性,并給出參考的修復(fù)方案。
該技術(shù)將繁雜緩慢的人工查漏改為更為高效的機(jī)器查漏,將被動等待攻擊改為主動模擬攻擊發(fā)現(xiàn)漏洞,將抽象的漏洞情況以報表的形式有序呈現(xiàn)給用戶,讓用戶更清晰地認(rèn)識到漏洞的危害情況與系統(tǒng)當(dāng)前狀態(tài)的安全狀態(tài),并將復(fù)雜的補(bǔ)漏過程簡化為補(bǔ)丁形式,極大地方便了用戶搭建管理安全、高效的數(shù)據(jù)庫系統(tǒng)。05 數(shù)據(jù)庫防火墻
數(shù)據(jù)庫防火墻系統(tǒng)(DBFirewall)是基于數(shù)據(jù)庫協(xié)議分析與控制技術(shù)的數(shù)據(jù)庫安全防護(hù)系統(tǒng)。DBFirewall基于主動防御機(jī)制,實(shí)現(xiàn)數(shù)據(jù)庫的訪問行為控制、危險操作阻斷、可疑行為審計。其利用SQL特征捕獲阻斷SQL注入行為,防止Web應(yīng)用的SQL注入漏洞進(jìn)一步產(chǎn)生危害。限定數(shù)據(jù)查詢和下載數(shù)量,限定敏感數(shù)據(jù)訪問的用戶、地點(diǎn)和時間,防止敏感數(shù)據(jù)大量泄露,追蹤審定非法行為,對非法操作詳細(xì)記錄,以供時候追蹤和定責(zé)。06 數(shù)據(jù)庫脫敏
數(shù)據(jù)庫脫敏是指對某些敏感信息通過脫敏規(guī)則進(jìn)行數(shù)據(jù)的變形,實(shí)現(xiàn)敏感隱私數(shù)據(jù)的可靠保護(hù)。在涉及客戶安全數(shù)據(jù)或一些商業(yè)性敏感數(shù)據(jù)的情況下,在不違反系統(tǒng)規(guī)則條件下,對真實(shí)數(shù)據(jù)進(jìn)行改造并提供測試使用,并仍能保證其有效性(保持原有數(shù)據(jù)類型和業(yè)務(wù)格式要求)、完整性(保證長度不變化、數(shù)據(jù)內(nèi)涵不丟失)、關(guān)系性(保持表間數(shù)據(jù)關(guān)聯(lián)關(guān)系、表內(nèi)數(shù)據(jù)關(guān)聯(lián)關(guān)系)。身份證號、手機(jī)號、卡號、客戶號等個人信息都需要進(jìn)行數(shù)據(jù)脫敏。
網(wǎng)站欄目:如何確保數(shù)據(jù)庫中的數(shù)據(jù)安全
轉(zhuǎn)載來源:http://jinyejixie.com/article24/djesce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、外貿(mào)建站、全網(wǎng)營銷推廣、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容