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