本文目錄一覽:
- 1、為什麼很多大公司用mysql數據庫?
- 2、國內銀行系統用Oracle數據庫不怕泄密嗎?
- 3、mysql的特點是什麼?
- 4、如何做好MySQL安全策略
- 5、請問怎樣把mysql數據庫和數據從5.0.17升級到5.0.27,謝謝!
- 6、在IT項目建設中,如何保證數據庫安全性?
為什麼很多大公司用mysql數據庫?
MySQL是一種開放源代碼的關係型數據庫管理系統(RDBMS),MySQL數據庫系統使用最常用的數據庫管理語言–結構化查詢語言(SQL)進行數據庫管理。
由於MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載並根據個性化的需要對其進行修改。MySQL因為其速度、可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。
MySQL關係型數據庫使用系統核心提供的多線程機制提供完全的多線程運行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等編程語言的編程接口(APIs),支持多種字段類型並且提供了完整的操作符支持查詢中的SELECT和WHERE操作。
時至今日 mysql 和 php 的結合絕對是完美.很多大型的網站也用到mysql數據庫.mysql的發展前景是非常光明的!
國內銀行系統用Oracle數據庫不怕泄密嗎?
典型的總有刁民想害朕的心態[靈光一閃]
泄密到不存在,一般國內銀行用Oracle的同時都會購買Oracle的維護服務,除非甲骨文不想做中國的生意了。當然因為中美關係的問題,一些行已經開始從周邊系統逐漸開始改造使用國產數據庫,比如華為的高斯200,同時國內的國有軟件企業也在部署研發國產的數據庫,公司名就不說了,反正確實有這個安排。
真的是個好問題,國家核心系統從什麼開始決心拋棄windows。銀行系統數據太過龐大複雜,上了賊船,下船太難太難了。
我是金融行業的碼農,也算是有一定的發言權吧。
在數據庫方面,金融領域用到的有Oracle和SQLServer等商業軟件,也有Mysql、Redis等開源軟件。這些軟件有個令人沮喪的共同點, 很少有國產自主研發數據庫 。
隨着互聯網的飛速發展,信息化浪潮席捲各個行業。效率的大幅提升,徹底顛覆了既有的工作模式。率先擁抱變革的企業收穫了巨大收益,讓後來者羨慕嫉妒恨。
信息技術不管發展如何,都繞不開數據存儲,數據存儲以關係型數據庫最符合人的思維方式。關係型數據庫中的翹楚無疑是Oracle數據庫。
再回到題主的泄密問題,即Oracle數據庫安全么?我的答案是 即安全又不安全 。之所以安全因為它是最好關係型數據庫,常見的指標如易用性、穩定性、可用性、可恢復性都有完整的解決方案。之所以不安全是因為它是國外的閉源軟件,是否有安全隱患,國人不得而知。
技術上不可控,我們怎麼才能避免呢?答案是從管理上從嚴控制。
不怕。
物理上是對外隔離的, 架構上也有大量技術手段確保數據的安全。
但是自主可控的趨勢不可阻擋。
內網,物理隔離。外網用啥都沒用,想搞你不過是時間問題。
國內銀行系統用的數據庫很多, 核心系統一般都用老牌的商業數據庫DB2、Oracle 。其他系統也有用Mysql、MongoDB等其他數據庫。至於數據泄露嗎?銀行當然也怕。但是,就綜合考慮來看,目前Oracle等商業數據庫依然是最佳選擇,將來可能會一步一步提高安全等級。
1、穩定是首要選項
我們都知道,銀行是金融系統的重要機構。它們的系統不能夠隨便出問題,一出問題影響整個 社會 。所以, 對銀行來說,穩定是擺在首要位置的 。任何創新都必須以此為前提。而DB2、Oracle這些商業數據庫軟件,首先能夠滿足銀行的穩定性要求。
而在中國,銀行是比較早有信息化的單位。但剛開始,沒有任何經驗的時候,只能是跟歐美國家學習模仿。外企銀行基本都是採用oracle、DB2來做核心系統。中國自然是採用國外相同的方案。大部分銀行也就採用了當時比較流行的一整套IBM大型機、小型機硬件,配套DB2、Oracle數據庫來做。
2、安全實現手段
①、廠家信譽
一直用DB2、Oracle作為核心數據庫。對銀行來說,已經是最佳選擇。因為,在過去,國產根本就沒有什麼拿得出手的數據庫可以使用。銀行自然也只能用業界最好的數據庫,而且Oracle、DB2這類大品牌的數據庫,在全球範圍應用都很廣。廠家自然也要注意保障安全,否則出了問題,全世界都受影響。
②、技術控制
除了廠家的信譽保障外,銀行在技術上做了很多安全措施。首先, 內外網是物理隔離的 。這樣,實時連接數據庫的攻擊是很難實現的了。其次,在防止數據泄露這一塊,銀行當然也是有很多的技術手段控制的。至少,外網需要的數據是從內網的網閘擺渡過去的。能擺渡什麼數據出去,也是銀行嚴格控制的。最後, 數據庫里的敏感數據,也是加密存儲的 。同時,網絡上還 部署了一系列網絡安全設備來 保障系統的安全。
3、銀行安全需升級
銀行現在雖然有很多的技術手段來保障信息安全,但是,DB2、Oracle始終是國外閉源商業數據庫軟件。如果軟件存在漏洞或者後門,對銀行來說也是一個大風險。加上國際形勢風雲變化,所以,銀行也還是會有擔心泄密問題,這就意味着銀行的安全體系還需要升級。
那該如何升級安全呢?除了系統過等級保護外,也一直在倡導用安全可靠的軟件。這就意味着需要逐步從Oracle、DB2等商業軟件走向開源、或者國產等數據庫軟件。不過,銀行的穩定性還是不能忽略的,所以, 銀行也就只能逐步 探索 ,逐步提升安全。同時,國產數據庫發展也還有很長一段路要走 。
總結
總之,早些年銀行從穩定和安全出發,Oracle、DB2等商業數據庫是最佳選擇。這些年,隨着國際形勢的變化和技術的發展,銀行也在逐步提升安全等級。將來也會逐步替換Oracle、DB2等商業數據庫軟件。
這是個系統的問題。
有些朋友說物理隔離,目前看應該做不到100%隔離。銀行數據中心就是提供服務的,隔離了怎麼提供服務?各個分行,網點,ATM都是要聯網的,都是要訪問數據庫的,只是權限不同。
歸結起來就是數據安全和數據庫系統,計算機系統,網絡系統,以及工作人員都是相關的,必須全方位防護。
數據庫系統,國產化當然是必須的,但是國產數據庫系統就沒有漏洞嗎?不故意竊取數據,難保不因失誤而失竊。這個要加強測試。
計算機系統,包括軟件和硬件,同樣道理。
網絡方面,銀行應該是租用運營商的線路(虛擬專網,VPN)實現網點互聯。出點和入點之間加密傳輸。如果加密算法沒有被破解,秘鑰沒有暴露,一般沒問題。但畢竟還是有”如果”的。
人的問題更大一些,買通一個人不太難吧?這個要通過層層審核,相互制衡,以及思想政治工作來防範。
所以說信息系統的安全防護是全方位的。
要使用SWIFT ,國際資金清算系統,就必須與國際接軌,所以必須用Oracl。
林鄭太太被制裁,信用卡不能用,工資都發現金,使用也是現金,那麼多的國行,沒有一家敢接盤。
有別的選擇嗎。
mysql的特點是什麼?
一、MySQL數據庫的特點和優勢:
(1)功能強大
MySQL 中提供了多種數據庫存儲引擎,各引擎各有所長,適用於不同的應用場合,用戶可以選擇最合適的引擎以得到最高性能,可以處理每天訪問量超過數億的高強度的搜索 Web 站點。MySQL5 支持事務、視圖、存儲過程、觸發器等。
(2)支持跨平台
MySQL 支持至少 20 種以上的開發平台,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。這使得在任何平台下編寫的程序都可以進行移植,而不需要對程序做任何的修改。
(3)運行速度快
高速是 MySQL 的顯著特性。在 MySQL 中,使用了極快的 B 樹磁盤表(MyISAM)和索引壓縮;通過使用優化的單掃描多連接,能夠極快地實現連接;SQL 函數使用高度優化的類庫實現,運行速度極快。
(4)支持面向對象
PHP 支持混合編程方式。編程方式可分為純粹面向對象、純粹面向過程、面句對象與面向過程混合 3 種方式。
(5)安全性高
靈活和安全的權限與密碼系統,允許基本主機的驗證。連接到服務器時,所有的密碼傳輸均採用加密形式,從而保證了密碼的安全。
(6)成本低
MySQL 數據庫開放源代碼且無版權制約,是一種完全免費的產品,用戶可以直接通過網絡下載,自主性及使用成本低。體積小,安裝方便。歷史悠久,用戶使用活躍,遇到問題可以尋求幫助,易於維護。
(7)支持各種開發語言
MySQL 為各種流行的程序設計語言提供支持,為它們提供了很多的 API 函數,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 語言等。
(8)數據庫存儲容量大
MySQL 數據庫的最大有效表尺寸通常是由操作系統對文件大小的限制決定的,而不是由 MySQL 內部限制決定的。InnoDB 存儲引擎將 InnoDB 表保存在一個表空間內,該表空間可由數個文件創建,表空間的最大容量為 64TB,可以輕鬆處理擁有上千萬條記錄的大型數據庫。
(9)支持強大的內置函數
PHP 中提供了大量內置函數,幾乎涵蓋了 Web 應用開發中的所有功能。它內置了數據庫連接、文件上傳等功能,MySQL 支持大量的擴展庫,如 MySQLi 等,可以為快速開發 Web 應用提供便利。
二、相比其他數據庫的特點和優勢:
(1) 對事務的提交
MySQL默認是自動提交,不需要在寫commit指令或者點擊commit按鈕。
(2) 分頁查詢
MySQL是直接在SQL語句中寫”select… from …where…limit m, n”,有limit就可以實現分頁。PHP里還可以用SEEK定位到結果集的位置。
(3) 事務隔離級別
MySQL是read commited的隔離級別。
一個session讀取數據時,其他session不能更改數據,但可以在表最後插入數據。session更新數據時,要加上排它鎖,其他session無法訪問數據。
(4) 複製簡單
MySQL複製服務器配置簡單。
(5) 自動增長的數據類型處理
MYSQL有自動增長的數據類型,插入記錄時不用操作此字段,會自動獲得數據值。
(6) 單引號的處理
MYSQL里可以用雙引號包起字符串。
(7) 日期字段的處理
MYSQL日期字段分DATE和TIME兩種。
(8) 空字符的處理
MYSQL的非空字段也有空的內容,NULL或空字符。
如何做好MySQL安全策略
摘至網頁鏈接
常見Mysql配置文件:linux系統下是my.conf,windows環境下是my.ini;
數據庫整體安全需求:機密性、完整性、可用性;
下面以mysql 5.7版本為例,介紹mysql常見的安全策略、配置、加固方式等等,有些策略可能只針對Linux操作系統,更多策略可以參考CIS Mysql Benchmark相關文檔:
1、操作系統級別安全配置
1.1不要將數據庫放在系統分區
Windows系統:直接檢查是否將數據庫放置在C盤。
Linux系統:
在終端連接上mysql數據庫,執行如下命令:
show variables where variable_name = ‘datadir’;
然後返回shell命令行:
df -h datadir
其中datadir是上一條命令的返回值。
上述命令的返回值不應是/、/var、/usr
1.2使用專用的最小權限賬號運行mysql數據庫進程
Windows系統:直接打開任務管理器,查看運行mysql進程的操作系統賬號,不能為administrator賬號。
Linux系統:
Shell命令行運行如下命令:
ps -ef | grep mysql
查看mysql服務的運行賬號是否為root或其他高權限賬號,如果是的,則需要創建一個非管理員專用賬號來運行mysql服務。
1.3禁止使用mysql命令行歷史記錄
Linux系統:
執行如下命令:
find / -name “.mysql_history”
查看是否存在mysql的歷史命令記錄文件,如果存在,則需要進行如下加固:
(1)刪除.mysql_history文件;
(2)設置環境變量MYSQL_HISTFILE為/dev/null,並添加到shell的初始化腳本中,創建mysql_history到/dev/null的鏈接:
ln -s /dev/null $HOME/.mysql_history
1.4 確保MYSQL_PWD環境變量未設置敏感信息
Windows系統下進入cmd命令行,使用如下命令:
Set
查看是否設置了環境變量MYSQL_PWD。
Linux系統下使用如下命令:
grep MYSQL_PWD /proc/*/environ
查看MYSQL_PWD環境變量是否設置了敏感信息。
確認那個配置文件或腳本設置了MYSQL_PWD環境變量。
2、安裝
2.1使用數據庫專用服務器
使用專用的服務器安裝mysql服務可以減少mysql服務的攻擊面,盡量卸載或刪除操作系統上的不必要的應用或服務,減少其他應用的安裝可能給mysql的運行帶來的安全風險。
2.2 不要復用數據庫賬號
運行mysql服務的操作系統賬號不要用來運行其他應用或服務,這樣可以避免其他應用或服務器被攻擊給mysql服務帶來影響。
2.3 歷史命令行密碼設置為不可見
使用如下命令:
mysql -u admin -p password
連接mysql數據庫服務,退出後查看歷史命令,確認password是否為明文。
建議使用如下命令方式登錄:
(1)先輸入mysql -u admin -p
(2)根據命令行提示輸入密碼;
而不要在一整條命令中輸入密碼。
另外要控制mysql配置文件訪問權限。
3、文件權限控制
3.1 控制數據目錄的訪問權限
數據目錄是mysql數據庫存放的位置,在mysql命令行界面下執行如下命令:
show variables where variable_name = ‘datadir’;
在終端命令行下執行如下命令:
ls -l datadir/.. | egrep “^d[r|w|x]{3}——\s*.\s*mysql\s*mysql\s*\d*.*mysql”
其中datadir是第一條命令的執行結果
如果存在問題,linux環境下在終端執行如下命令進行加固:
chmod 700 datadir
chown mysql:mysql datadir
3.2 控制二進制日誌文件的權限
mysql的運行會產生很多日誌,例如二進制日誌、錯誤日誌、慢查詢日誌等等,Mysql命令行下執行如下命令:
show variables like ‘log_bin_basename’;
在終端命令行執行如下命令:
ls log_bin_basename.*
對於發現的每一個文件,執行如下命令:
ls -l log_bin_basename.nnnnn | egrep “^-[r|w]{2}-[r|w]{2}—-\s*.*$”
根據輸出確認日誌文件的權限設置是否存在問題。
對於每個日誌文件,修改其權限和屬組如下:
chmod 660 log file
chown mysql:mysql log file
3.3 控制錯誤日誌文件的權限
Mysql命令行下執行如下命令:
show variables like ‘log_error’;
在終端命令行執行如下命令:
ls log_error.*
對於發現的每一個文件,執行如下命令:
ls -l log_error | egrep “^-[r|w]{2}-[r|w]{2}—-\s*.*$”
根據輸出確認日誌文件的權限設置是否存在問題。
對於每個日誌文件,修改其權限和屬組如下:
chmod 660 log file
chown mysql:mysql log file
3.4控制慢查詢日誌文件的權限
Mysql命令行下執行如下命令:
show variables like ‘slow_query_log_file’;
在終端命令行執行如下命令:
ls slow_query_log_file.*
對於發現的每一個文件,執行如下命令:
ls -l slow_query_log_file | egrep “^-[r|w]{2}-[r|w]{2}—-\s*.*$”
根據輸出確認日誌文件的權限設置是否存在問題。
對於每個日誌文件,修改其權限和屬組如下:
chmod 660 log file
chown mysql:mysql log file
3.5控制通用日誌文件的權限
Mysql命令行下執行如下命令:
show variables like ‘general_log_file’;
在終端命令行執行如下命令:
ls general_log_file.*
對於發現的每一個文件,執行如下命令:
ls -l general_log_file | egrep “^-[r|w]{2}-[r|w]{2}—-\s*.*$”
根據輸出確認日誌文件的權限設置是否存在問題。
對於每個日誌文件,修改其權限和屬組如下:
chmod 660 log file
chown mysql:mysql log file
3.6控制審計日誌文件的權限
Mysql命令行下執行如下命令:
show global variables where variable_name = ‘audit_log_file’;
在終端執行如下命令:
ls -l audit_log_file | egrep “^-rw[-x]rw[-x][-r][-w][-x][ \t]*[0-9][ \t]*mysql[
\t]*mysql.*$”
根據輸出確認日誌文件的權限設置是否存在問題。
對於每個日誌文件,修改其權限和屬組如下:
chmod 660 audit_log_file
chown mysql:mysql audit_log_file
4、通用安全
4.1安裝最新的補丁
在mysql命令行下查詢MySQL的版本:
SHOW VARIABLES WHERE Variable_name LIKE “version”;
確認是否由需要安裝的補丁包,如果有請安裝。
4.2 刪除test數據庫
Mysql數據庫默認安裝好後,存在一個名為test的數據庫,如果存在,請執行如下命令刪除:
Drop database “test”
4.3 確保讀取本地文件的參數設置為失效
Mysql命令行下,使用如下命令:
SHOW VARIABLES WHERE Variable_name = ‘local_infile’;
查看結果是否為OFF。
如果該命令為ON,則數據庫用戶可以通過LOAD DATA INFILE 或者 SELECT local_file 讀取到數據庫所在操作系統本地的文件,在這種情況下,需要在mysql配置文件中新增一行:
Local-infile=0;
然後重啟數據庫服務。
5、權限配置
5.1控制可以訪問所有數據庫的賬號
Mysql數據庫下的user表和db表中存放着可以授予數據庫用戶的權限,確保只有管理員賬號才能訪問所有數據庫。可以訪問mysql數據庫的用戶或許可以查看密碼哈希值、修改用戶權限等等。
使用如下sql語句:
SELECT user, host FROM mysql.user
WHERE (Select_priv = ‘Y’) OR (Insert_priv = ‘Y’) OR (Update_priv = ‘Y’)
OR (Delete_priv = ‘Y’) OR (Create_priv = ‘Y’) OR (Drop_priv = ‘Y’);
SELECT user, host FROM mysql.db WHERE db = ‘mysql’
AND ((Select_priv = ‘Y’) OR (Insert_priv = ‘Y’) OR (Update_priv = ‘Y’)
OR (Delete_priv = ‘Y’) OR (Create_priv = ‘Y’) OR (Drop_priv = ‘Y’));
確保返回結果只能是數據庫管理員賬號。
5.2限制非管理員用戶的權限
Mysql.user表中的權限列有:
file_priv:表示是否允許用戶讀取數據庫所在主機的本地文件;
Process:表示是否允許用戶查詢所有用戶的命令執行信息;
Super_priv:表示用戶是否有設置全局變量、管理員調試等高級別權限;
Shutdown_priv:表示用戶是否可以關閉數據庫;
Create_user_priv:表示用戶是否可以創建或刪除其他用戶;
Grant_priv:表示用戶是否可以修改其他用戶的權限;
應確保只有數據庫管理員才有上述權限,使用如下sql語句查看擁有各個權限的數據庫賬號:
select user, host from mysql.user where File_priv = ‘Y’;
select user, host from mysql.user where Process_priv = ‘Y’;
select user, host from mysql.user where Process_priv = ‘Y’;
SELECT user, host FROM mysql.user WHERE Shutdown_priv = ‘Y’;
SELECT user, host FROM mysql.user WHERE Create_user_priv = ‘Y’;
SELECT user, host FROM mysql.user WHERE Grant_priv = ‘Y’;
SELECT user, host FROM mysql.db WHERE Grant_priv = ‘Y’;
確保查詢結果中不存在非管理員用戶。
如果存在非管理員用戶,使用如下命令進行權限回收:
REVOKE FILE ON *.* FROM ‘user’;
REVOKE PROCESS ON *.* FROM ‘user’;
REVOKE SUPER ON *.* FROM ‘user’;
REVOKE SHUTDOWN ON *.* FROM ‘user’;
REVOKE CREATE USER ON *.* FROM ‘user’;
REVOKE GRANT OPTION ON *.* FROM user;
其中user為上述查詢到的非管理員用戶。
5.3合理控制DML/DDL操作授權
DML/DDL語句包括創建或修改數據庫結構的權限,例如insert、update、delete、create、drop和alter語句,在任何數據庫中都要控制用戶的此類權限,確保只授權給有業務需求的非管理員用戶。Mysql命令行下執行如下命令:
SELECT User,Host,Db FROM mysql.db WHERE Select_priv=’Y’
OR Insert_priv=’Y’ OR Update_priv=’Y’ OR Delete_priv=’Y’ OR Create_priv=’Y’
OR Drop_priv=’Y’ OR Alter_priv=’Y’;
上述查詢到的用戶只能對特地的數據庫才有相關的權限,使用如下命令進行相關權限的回收:
REVOKE SELECT ON host.database FROM user;
REVOKE INSERT ON host.database FROM user;
REVOKE UPDATE ON host.database FROM user;
REVOKE DELETE ON host.database FROM user;
REVOKE CREATE ON host.database FROM user;
REVOKE DROP ON host.database FROM user;
REVOKE ALTER ON host.database FROM user;
其中user為查詢到的未授權的用戶,host為相關主機,database為相關數據庫。
6、審計和日誌
6.1開啟錯誤日誌審計功能
錯誤日誌包括數據庫運行和停止過程中的一系列活動信息,有助於分析數據庫運行過程中的一些異常活動,一般情況下需要開啟錯誤日誌記錄功能,使用如下命令查詢:
SHOW variables LIKE ‘log_error’;
確保返回結果為非空,如果為空,需要在mysql數據庫配置文件中增加相關配置。
6.2確保日誌存放在非系統區域
日誌文件隨着數據庫的運行會不斷增加,如果存放在系統區域,則會影響系統的正常運行,使用如下命令進行查詢:
SELECT @@global.log_bin_basename;
確保返回結果不是如下路徑:/、/var、/usr
6.3關閉原始日誌功能
原始日誌選項會決定一些敏感信息是否會被明文寫進日誌中,例如查詢日誌、慢查詢日誌、二進制日誌,確保數據庫配置文件中存在如下配置項:
Log-raw = OFF
7、認證
7.1 Old_passwords環境變量設置
Old_passwords決定了使用PASSWORD()函數和IDENTIFIED BY 、CREATE USER 、GRANT 等語句是時的hash算法:
0 – authenticate with the mysql_native_password plugin
1 – authenticate with the mysql_old_password plugin
2 – authenticate with the sha256_password plugin
設置為mysql_old_password代表弱hash算法,可以快速通過密碼字典進行暴力破解。使用如下命令查詢相關值:
SHOW VARIABLES WHERE Variable_name = ‘old_passwords’;
確保返回值不為1。
7.2 secure_auth 選項設置
如果客戶端採用Old_passwords發起連接請求,如果服務器端設置了secure_auth,則客戶端會拒絕連接請求,可以根據安全需求在配置文件中做相應配置。
7.3 密碼保存
確保密碼沒有明文保存在全局配置文件中。
7.4 確保所有用戶都要求使用非空密碼登錄
執行如下語句查詢是否有用戶不需要密碼即可登錄:
SELECT User,host
FROM mysql.user
WHERE (plugin IN(‘mysql_native_password’, ‘mysql_old_password’)
AND (LENGTH(Password) = 0
OR Password IS NULL))
OR (plugin=’sha256_password’ AND LENGTH(authentication_string) = 0);
7.5不存在空賬號
使用如下命令查詢是否存在空賬號:
SELECT user,host FROM mysql.user WHERE user = ”;
8、網絡設置
如果mysql數據庫服務器與應用是跨信任域部署的,則需要考慮在數據庫服務器與應用服務器之間建立ssl通道進行數據傳輸,不過這種場景一般很少見,在此不詳細描述。
9、數據庫備份
請問怎樣把mysql數據庫和數據從5.0.17升級到5.0.27,謝謝!
1.導出5.0.17當前數據庫數據,進行備份。
2.安裝5.0.27進行備份數據導入。
3.具體操作
Windows中升級MySQL應採取的步驟:
1. 進行升級前你應先備份當前的MySQL安裝。
2. 下載最新Windows版MySQL。
3. 升級MySQL前,必須停止服務器。
如果服務器安裝為服務,必須在命令提示符下在命令行中用下面的命令停止服務:
C:\ NET STOP MYSQL如果MySQL服務器不是服務,使用下面的命令停止服務器:
C:\ C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root shutdown4.
4.當從以前至的4.1.5版本升級到MySQL 5.1時,或從Zip文件安裝的MySQL升級到MySQL Installation Wizard(安裝幫助)安裝的MySQL時,你必須手動卸載前面安裝的MySQL服務。
要想卸載MySQL服務,使用下面的命令:
C:\ C:\mysql\bin\mysqld –remove
如果你不想卸載已有的服務,MySQL Installation Wizard(安裝幫助)則不會正確安裝新的MySQL服務。
5. 如果你使用MySQL Installation Wizard(安裝幫助),請參考“使用MySQL安裝嚮導”的描述來啟動幫助。
6. 如果用Zip文件安裝MySQL,應提取文件。你可以覆蓋已有的MySQL安裝(通常位於C:\mysql),或將它安裝到其它目錄,例如 C:\mysql4。建議覆蓋原有的安裝。
7. 重新啟動服務器。如果你運行MySQL服務,則使用NET START MySQL,還可以直接調用mysqld。
相關文章從Windows命令行啟動MySQL 如何在Mac OS X中安裝MySQL Windows下MySQL安裝故障診斷與排除 迅速優化MySQL數據庫性能完全解析MySQL數據庫中Show命令用法無法遠程登入MySQL數據庫解決辦法保持MySQL安全公共MySQL的數據庫服務器層快速掌握升級MySQL系統表Java操作MySQL的中文處理方法 最新文章MySQL查詢優化器淺析SQL Server 2005 Analysis Services性能指南Access中使用SQL語句應掌握的幾點技巧聯合刪除兩張表的數據Oracle Stream配置詳細步驟ASP.NET應用中緩存Oracle數據Oracle數據庫綁定變量特性及應用一個將Excel中的數據導入MySQL的簡單方法講解MySQL數據庫搜索中的大小寫敏感性利用utl_smtp從Oracle數據庫發送帶blob附件的電子郵件
在IT項目建設中,如何保證數據庫安全性?
#雲原生背景#
雲計算是信息技術發展和服務模式創新的集中體現,是信息化發展的重要變革和必然趨勢。隨着“新基建”加速布局,以及企業數字化轉型的逐步深入,如何深化用雲進一步提升雲計算使用效能成為現階段雲計算髮展的重點。雲原生以其高效穩定、快速響應的特點極大地釋放了雲計算效能,成為企業數字業務應用創新的原動力,雲原生進入快速發展階段,就像集裝箱加速貿易全球化進程一樣,雲原生技術正在助力雲計算普及和企業數字化轉型。
雲原生計算基金會(CNCF)對雲原生的定義是:雲原生技術有利於各組織在公有雲、私有雲和混合雲等新型動態環境中,構建和運行可彈性擴展的應用。雲原生的代表技術包括容器、服務網格、微服務、不可變基礎設施和聲明式編程API。
#雲安全時代市場發展#
雲安全幾乎是伴隨着雲計算市場而發展起來的,雲基礎設施投資的快速增長,無疑為雲安全發展提供土壤。根據 IDC 數據,2020 年全球雲安全支出占雲 IT 支出比例僅為 1.1%,說明目前雲安全支出遠遠不夠,假設這一比例提升至 5%,那麼2020 年全球雲安全市場空間可達 53.2 億美元,2023 年可達 108.9 億美元。
海外雲安全市場:技術創新與兼并整合活躍。整體來看,海外雲安全市場正處於快速發展階段,技術創新活躍,兼并整合頻繁。一方面,雲安全技術創新活躍,並呈現融合發展趨勢。例如,綜合型安全公司 PaloAlto 的 Prisma 產品線將 CWPP、CSPM 和 CASB 三個雲安全技術產品統一融合,提供綜合解決方案及 SASE、容器安全、微隔離等一系列雲上安全能力。另一方面,新興的雲安全企業快速發展,同時,傳統安全供應商也通過自研+兼并的方式加強雲安全布局。
國內雲安全市場:市場空間廣闊,尚處於技術追隨階段。市場規模上,根據中國信通院數據,2019 年我國雲計算整體市場規模達 1334.5億元,增速 38.6%。預計 2020-2022 年仍將處於快速增長階段,到 2023 年市場規模將超過 3754.2 億元。中性假設下,安全投入占雲計算市場規模的 3%-5%,那麼 2023 年中國雲安全市場規模有望達到 112.6 億-187.7 億元。技術發展上,中國在雲計算的發展階段和雲原生技術的程度上與海外市場還有一定差距。國內 CWPP 技術應用較為廣泛,對於 CASB、CSPM 一些新興的雲安全技術應用較少。但隨着國內公有雲市場的加速發展,雲原生技術的應用越來越廣泛,我們認為CASB、SCPM、SASE 等新興技術在國內的應用也將越來越廣泛。
#雲上安全呈原生化發展趨勢#
雲原生技術逐漸成為雲計算市場新趨勢,所帶來的安全問題更為複雜。以容器、服務網格、微服務等為代表的雲原生技術,正在影響各行各業的 IT 基礎設施、平台和應用系統,也在滲透到如 IT/OT 融合的工業互聯網、IT/CT 融合的 5G、邊緣計算等新型基礎設施中。隨着雲原生越來越多的落地應用,其相關的安全風險與威脅也不斷的顯現出來。Docker/Kubernetes 等服務暴露問題、特斯拉 Kubernetes 集群挖礦事件、Docker Hub 中的容器鏡像被“投毒”注入挖礦程序、微軟 Azure 安全中心檢測到大規模 Kubernetes 挖礦事件、Graboid 蠕蟲挖礦傳播事件等一系列針對雲原生的安全攻擊事件層出不窮。
從各種各樣的安全風險中可以一窺雲原生技術的安全態勢,雲原生環境仍然存在許多安全問題亟待解決。在雲原生技術的落地過程中,安全是必須要考慮的重要因素。
#雲原生安全的定義#
國內外各組織、企業對雲原生安全理念的解釋略有差異,結合我國產業現狀與痛點,雲原生與雲計算安全相似,雲原生安全也包含兩層含義:“面向雲原生環境的安全”和“具有雲原生特徵的安全”。
面向雲原生環境的安全,其目標是防護雲原生環境中的基礎設施、編排系統和微服務的安全。這類安全機制,不一定具備雲原生的特性(比如容器化、可編排),它們可以是傳統模式部署的,甚至是硬件設備,但其作用是保護日益普及的雲原生環境。
具有雲原生特徵的安全,是指具有雲原生的彈性敏捷、輕量級、可編排等特性的各類安全機制。雲原生是一種理念上的創新,通過容器化、資源編排和微服務重構了傳統的開發運營體系,加速業務上線和變更的速度,因而,雲原生系統的種種優良特性同樣會給安全廠商帶來很大的啟發,重構安全產品、平台,改變其交付、更新模式。
#雲原生安全理念構建#
為緩解傳統安全防護建設中存在的痛點,促進雲計算成為更加安全可信的信息基礎設施,助力雲客戶更加安全的使用雲計算,雲原生安全理念興起,國內外第三方組織、服務商紛紛提出以原生為核心構建和發展雲安全。
Gartner提倡以雲原生思維建設雲安全體系
基於雲原生思維,Gartner提出的雲安全體系覆蓋八方面。其中,基礎設施配置、身份和訪問管理兩部分由雲服務商作為基礎能力提供,其它六部分,包括持續的雲安全態勢管理,全方位的可視化、日誌、審計和評估,工作負載安全,應用、PaaS 和 API 安全,擴展的數據保護,雲威脅檢測,客戶需基於安全產品實現。
Forrester評估公有雲平台原生安全能力
Forrester認為公有雲平台原生安全(Public cloud platform native security, PCPNS)應從三大類、37 個方面去衡量。從已提供的產品和功能,以及未來戰略規劃可以看出,一是考察雲服務商自身的安全能力和建設情況,如數據中心安全、內部人員等,二是雲平台具備的基礎安全功能,如幫助和文檔、授權和認證等,三是為用戶提供的原生安全產品,如容器安全、數據安全等。
安全狗以4項工作防護體系建設雲原生安全
(1)結合雲原生技術的具體落地情況開展並落實最小權限、縱深防禦工作,對於雲原生環境中的各種組成部分,均可貫徹落實“安全左移”的原則,進行安全基線配置,防範於未然。而對於微服務架構Web應用以及Serverless應用的防護而言,其重點是應用安全問題。
(2)圍繞雲原生應用的生命周期來進行DevSecOps建設,以當前的雲原生環境的關鍵技術棧“K8S + Docker”舉例進行分析。應該在容器的全生命周期注重“配置安全”,在項目構建時注重“鏡像安全”,在項目部署時注重“容器准入”,在容器的運行環境注重雲計算的三要素“計算”“網絡”以及“存儲”等方面的安全問題。
(3)圍繞攻擊前、中、後的安全實施準則進行構建,可依據安全實施準則對攻擊前、中、後這三個階段開展檢測與防禦工作。
(4)改造並綜合運用現有雲安全技術,不應將“雲原生安全”視為一個獨立的命題,為雲原生環境提供更多支持的主機安全、微隔離等技術可賦能於雲原生安全。
#雲原生安全新型風險#
雲原生架構的安全風險包含雲原生基礎設施自身的安全風險,以及上層應用雲原生化改造後新增和擴大的安全風險。雲原生環境面臨著嚴峻的安全風險問題。攻擊者可能利用的重要攻擊面包括但不限於:容器安全、編排系統、軟件供應鏈等。下面對重要的攻擊面安全風險問題進行梳理。
#雲原生安全問題梳理#
問題1:容器安全問題
在雲原生應用和服務平台的構建過程中,容器技術憑藉高彈性、敏捷的特性,成為雲原生應用場景下的重要技術支撐,因而容器安全也是雲原生安全的重要基石。
(1)容器鏡像不安全
Sysdig的報告中提到,在用戶的生產環境中,會將公開的鏡像倉庫作為軟件源,如最大的容器鏡像倉庫Docker Hub。一方面,很多開源軟件會在Docker Hub上發布容器鏡像。另一方面,開發者通常會直接下載公開倉庫中的容器鏡像,或者基於這些基礎鏡像定製自己的鏡像,整個過程非常方便、高效。然而,Docker Hub上的鏡像安全並不理想,有大量的官方鏡像存在高危漏洞,如果使用了這些帶高危漏洞的鏡像,就會極大的增加容器和主機的入侵風險。目前容器鏡像的安全問題主要有以下三點:
1.不安全的第三方組件
在實際的容器化應用開發過程當中,很少從零開始構建鏡像,而是在基礎鏡像之上增加自己的程序和代碼,然後統一打包最終的業務鏡像並上線運行,這導致許多開發者根本不知道基礎鏡像中包含多少組件,以及包含哪些組件,包含的組件越多,可能存在的漏洞就越多。
2.惡意鏡像
公共鏡像倉庫中可能存在第三方上傳的惡意鏡像,如果使用了這些惡意鏡像來創建容器後,將會影響容器和應用程序的安全
3.敏感信息泄露
為了開發和調試的方便,開發者將敏感信息存在配置文件中,例如數據庫密碼、證書和密鑰等內容,在構建鏡像時,這些敏感信息跟隨配置文件一併打包進鏡像,從而造成敏感信息泄露
(2)容器生命周期的時間短
雲原生技術以其敏捷、可靠的特點驅動引領企業的業務發展,成為企業數字業務應用創新的原動力。在容器環境下,一部分容器是以docker的命令啟動和管理的,還有大量的容器是通過Kubernetes容器編排系統啟動和管理,帶來了容器在構建、部署、運行,快速敏捷的特點,大量容器生命周期短於1小時,這樣一來容器的生命周期防護較傳統虛擬化環境發生了巨大的變化,容器的全生命周期防護存在很大變數。對防守者而言,需要採用傳統異常檢測和行為分析相結合的方式,來適應短容器生命周期的場景。
傳統的異常檢測採用WAF、IDS等設備,其規則庫已經很完善,通過這種檢測方法能夠直觀的展示出存在的威脅,在容器環境下,這種方法仍然適用。
傳統的異常檢測能夠快速、精確地發現已知威脅,但大多數未知威脅是無法通過規則庫匹配到的,因而需要通過行為分析機制來從大量模式中將異常模式分析出來。一般來說,一段生產運營時間內的業務模式是相對固定的,這意味着,業務行為是可以預測的,無論啟動多少個容器,容器內部的行為總是相似的。通過機器學習、採集進程行為,自動構建出合理的基線,利用這些基線對容器內的未知威脅進行檢測。
(3)容器運行時安全
容器技術帶來便利的同時,往往會忽略容器運行時的安全加固,由於容器的生命周期短、輕量級的特性,傳統在宿主機或虛擬機上安裝殺毒軟件來對一個運行一兩個進程的容器進行防護,顯示費時費力且消耗資源,但在黑客眼裡容器和裸奔沒有什麼區別。容器運行時安全主要關注點:
1.不安全的容器應用
與傳統的Web安全類似,容器環境下也會存在SQL注入、XSS、RCE、XXE等漏洞,容器在對外提供服務的同時,就有可能被攻擊者利用,從而導致容器被入侵
2.容器DDOS攻擊
默認情況下,docker並不會對容器的資源使用進行限制,默認情況下可以無限使用CPU、內存、硬盤資源,造成不同層面的DDOS攻擊
(4)容器微隔離
在容器環境中,與傳統網絡相比,容器的生命周期變得短了很多,其變化頻率也快很多。容器之間有着複雜的訪問關係,尤其是當容器數量達到一定規模以後,這種訪問關係帶來的東西向流量,將會變得異常的龐大和複雜。因此,在容器環境中,網絡的隔離需求已經不僅僅是物理網絡的隔離,而是變成了容器與容器之間、容器組與宿主機之間、宿主機與宿主機之間的隔離。
問題2:雲原生等保合規問題
等級保護2.0中,針對雲計算等新技術、新應用領域的個性安全保護需求提出安全擴展要求,形成新的網絡安全等級保護基本要求標準。雖然編寫了雲計算的安全擴展要求,但是由於編寫周期很長,編寫時主流還是虛擬化場景,而沒有考慮到容器化、微服務、無服務等雲原生場景,等級保護2.0中的所有標準不能完全保證適用於目前雲原生環境;
通過安全狗在雲安全領域的經驗和具體實踐,對於雲計算安全擴展要求中訪問控制的控制點,需要檢測主機賬號安全,設置不同賬號對不同容器的訪問權限,保證容器在構建、部署、運行時訪問控制策略隨其遷移;
對於入侵防範制的控制點,需要可視化管理,繪製業務拓撲圖,對主機入侵進行全方位的防範,控制業務流量訪問,檢測惡意代碼感染及蔓延的情況;
鏡像和快照保護的控制的,需要對鏡像和快照進行保護,保障容器鏡像的完整性、可用性和保密性,防止敏感信息泄露。
問題3:宿主機安全
容器與宿主機共享操作系統內核,因此宿主機的配置對容器運行的安全有着重要的影響,比如宿主機安裝了有漏洞的軟件可能會導致任意代碼執行風險,端口無限制開放可能會導致任意用戶訪問的風險。通過部署主機入侵監測及安全防護系統,提供主機資產管理、主機安全加固、風險漏洞識別、防範入侵行為、問題主機隔離等功能,各個功能之間進行聯動,建立採集、檢測、監測、防禦、捕獲一體化的安全閉環管理系統,對主機進行全方位的安全防護,協助用戶及時定位已經失陷的主機,響應已知、未知威脅風險,避免內部大面積主機安全事件的發生。
問題4:編排系統問題
編排系統支撐着諸多雲原生應用,如無服務、服務網格等,這些新型的微服務體系也同樣存在着安全問題。例如攻擊者編寫一段代碼獲得容器的shell權限,進而對容器網絡進行滲透橫移,造成巨大損失。
Kubernetes架構設計的複雜性,啟動一個Pod資源需要涉及API Server、Controller、Manager、Scheduler等組件,因而每個組件自身的安全能力顯的尤為重要。API Server組件提供的認證授權、准入控制,進行細粒度訪問控制、Secret資源提供密鑰管理及Pod自身提供安全策略和網絡策略,合理使用這些機制可以有效實現Kubernetes的安全加固。
問題5:軟件供應鏈安全問題
通常一個項目中會使用大量的開源軟件,根據Gartner統計至少有95%的企業會在關鍵IT產品中使用開源軟件,這些來自互聯網的開源軟件可能本身就帶有病毒、這些開源軟件中使用了哪些組件也不了解,導致當開源軟件中存在0day或Nday漏洞,我們根本無法獲悉。
開源軟件漏洞無法根治,容器自身的安全問題可能會給開發階段帶的各個過程帶來風險,我們能做的是根據SDL原則,從開發階段就開始對軟件安全性進行合理的評估和控制,來提升整個供應鏈的質量。
問題6:安全運營成本問題
雖然容器的生命周期很短,但是包羅萬象。對容器的全生命周期防護時,會對容器構建、部署、運行時進行異常檢測和安全防護,隨之而來的就是高成本的投入,對成千上萬容器中的進程行為進程檢測和分析,會消耗宿主機處理器和內存資源,日誌傳輸會佔用網絡帶寬,行為檢測會消耗計算資源,當環境中容器數量巨大時,對應的安全運營成本就會急劇增加。
問題7:如何提升安全防護效果
關於安全運營成本問題中,我們了解到容器安全運營成本較高,我們該如何降低安全運營成本的同時,提升安全防護效果呢?這就引入一個業界比較流行的詞“安全左移”,將軟件生命周期從左到右展開,即開發、測試、集成、部署、運行,安全左移的含義就是將安全防護從傳統運營轉向開發側,開發側主要設計開發軟件、軟件供應鏈安全和鏡像安全。
因此,想要降低雲原生場景下的安全運營成本,提升運營效率,那麼首先就要進行“安全左移”,也就是從運營安全轉向開發安全,主要考慮開發安全、軟件供應鏈安全、鏡像安全和配置核查:
開發安全
需要團隊關注代碼漏洞,比如使用進行代碼審計,找到因缺少安全意識造成的漏洞和因邏輯問題造成的代碼邏輯漏洞。
供應鏈安全
可以使用代碼檢查工具進行持續性的安全評估。
鏡像安全
使用鏡像漏洞掃描工具持續對自由倉庫中的鏡像進行持續評估,對存在風險的鏡像進行及時更新。
配置核查
核查包括暴露面、宿主機加固、資產管理等,來提升攻擊者利用漏洞的難度。
問題8:安全配置和密鑰憑證管理問題
安全配置不規範、密鑰憑證不理想也是雲原生的一大風險點。雲原生應用會存在大量與中間件、後端服務的交互,為了簡便,很多開發者將訪問憑證、密鑰文件直接存放在代碼中,或者將一些線上資源的訪問憑證設置為弱口令,導致攻擊者很容易獲得訪問敏感數據的權限。
#雲原生安全未來展望#
從日益新增的新型攻擊威脅來看,雲原生的安全將成為今後網絡安全防護的關鍵。伴隨着ATTCK的不斷積累和相關技術的日益完善,ATTCK也已增加了容器矩陣的內容。ATTCK是對抗戰術、技術和常識(Adversarial Tactics, Techniques, and Common Knowledge)的縮寫,是一個攻擊行為知識庫和威脅建模模型,它包含眾多威脅組織及其使用的工具和攻擊技術。這一開源的對抗戰術和技術的知識庫已經對安全行業產生了廣泛而深刻的影響。
雲原生安全的備受關注,使ATTACK Matrix for Container on Cloud的出現恰合時宜。ATTCK讓我們從行為的視角來看待攻擊者和防禦措施,讓相對抽象的容器攻擊技術和工具變得有跡可循。結合ATTCK框架進行模擬紅藍對抗,評估企業目前的安全能力,對提升企業安全防護能力是很好的參考。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/184481.html