;?更新?mysql.user?設置?Password = password ('newpwd ')”,最後執行“f" />
如果MYSQL客戶端和服務器之間的連接需要穿越不可信的網絡,那麽就需要ssh隧道對連接的通信進行加密。
使用set?Password語句修改用戶的密碼,首先“mysql?-u?”root "登錄數據庫系統,然後" MySQL >;?更新?mysql.user?設置?Password = password ('newpwd ')”,最後執行“flush?特權”就行了。
Mysql需要防範的攻擊包括竊聽、篡改、回放、拒絕服務等。,不涉及可用性和容錯。對所有連接、查詢和其他操作使用基於acl(訪問控制列表)的安全措施。也有壹些對ssl連接的支持。
設置除root用戶外的任何用戶都不允許訪問mysql主數據庫中的用戶表;用戶表中存儲的加密用戶密碼壹旦泄露,他人就可以隨意使用用戶名/密碼對應的數據庫;
使用grant和revoke語句控制用戶訪問;
不使用明文密碼,使用md5()和sha1()等單向哈希函數設置密碼;
不要用字典裏的單詞做密碼;
使用防火墻可以消除50%的外部危險,使數據庫系統工作在防火墻後面或dmz區域;
使用nmap從互聯網或telnet掃描端口3306?server_host?3306方法測試,不允許不可信網絡訪問數據庫服務器的tcp端口3306,需要設置在防火墻或路由器上;
為了防止非法參數被惡意傳入,比如哪裏?Id=234,但是其他人進入哪裏?id=234?還是?1=1導致全顯示,所以用web形式的“或”來使用字符串,在動態url中加%22為雙引號,%23為英鎊符號,%27為單引號;向mysql數據庫傳遞未經檢查的值是非常危險的;
向mysql傳遞數據時檢查大小;
需要連接數據庫的應用程序應該使用普通用戶帳戶,並向用戶開放壹些必要的權限;
在每個編程接口(C?c++?php?perl?java?Jdbc等。)使用特定的“轉義符”函數;在互聯網上使用mysql數據庫時,必須很少傳輸明文數據,而是使用ssl和ssh加密方式傳輸數據。
學會使用tcpdump和strings工具檢查傳輸數據的安全性,比如tcpdump?-我?-我?eth0?-w?-src?還是?dst?港口?3306?琴弦.用普通用戶啟動mysql數據庫服務;
不使用表的連接符號,選擇什麽參數?–跳過符號鏈接;
確保只有在mysql目錄下啟動數據庫服務的用戶才有讀寫文件的權限;
不要向非管理用戶支付進程或超級權限。這個mysqladmin?Processlist可以列出當前執行的查詢文本;超級權限可以用來切斷客戶端連接,改變服務器運行參數狀態,控制復制復制數據庫的服務器;
文件權限不支付給管理員以外的用戶,防止加載?數據?/etc/passwd '放入表中,然後使用select?顯示的問題;
如果不信任dns服務公司的服務,只能在主機名權限表中設置ip數字地址;
使用max_user_connections變量使mysqld服務進程限制指定帳戶的連接數;
Grant語句還支持資源控制選項;
啟動mysqld服務進程的安全選項開關,–local-Infile = 0或1?如果為0,則客戶端程序不能使用local?加載?數據,壹個授權授予的例子?插入(用戶)?開?mysql.user?去哪?用戶名“@”主機名;如果您使用–skip-skip-grant-tables系統,您將無法控制任何用戶的訪問,但是您可以使用它。mysqladmin?Flush-privileges還是mysqladmin?重新加載以打開訪問控制;默認為顯示?databases語句對所有用戶開放,可以用–skip-skip-show-databases關閉。
遇到錯誤?1045(28000)?訪問?被拒?為了什麽?用戶?根目錄“@”localhost?(使用?密碼:否)出現錯誤時,需要重置密碼。具體方法是先用–skip-skip-grant-tables參數啟動mysqld,然後執行?mysql?-妳呢?根?mysql,mysql & gt更新?用戶?設置?password=password('newpassword ')?在哪裏?user =“root”;mysql & gt同花順?特權;,最後重啟mysql。