MySQL安全輸入密碼的一些操作介紹_MySQL教程
推薦:MySQL在Linux系統(tǒng)中隱藏命令行中的密碼的方法這篇文章主要介紹了MySQL在Linux系統(tǒng)中隱藏命令行中的密碼的方法,作者利用簡(jiǎn)單的C程序?qū)崿F(xiàn),需要的朋友可以參考下 在命令行中輸入命令并不是一個(gè)好主意,會(huì)造成安全問(wèn)題。但是如果你決定去寫一個(gè)應(yīng)用,而這個(gè)應(yīng)用需要在命令行中使用密碼或者其他敏感信息。那么,你能通
這篇文章主要介紹了MySQL安全輸入密碼的一些操作,示例基于Linux操作系統(tǒng),需要的朋友可以參考下
當(dāng)我們運(yùn)行mysql客戶端連接mysql服務(wù)器的時(shí)候,以一種暴露的可被其他用戶發(fā)現(xiàn)的方式指定我們的密碼是不妥的。我們輸入密碼的方式有四種,其中每一種都有一定風(fēng)險(xiǎn)。下面就分別說(shuō)下這四種方式:
MySQL密碼輸入的安全操作(翻譯)
第一種:直接在命令行后使用 -pyour_pass 或者r --password=your_pass 這兩種選項(xiàng)。
舉例:
?
這種方式很方便,但是不安全,因?yàn)樵谀承┫到y(tǒng)里,通過(guò)這種方式輸入的密碼對(duì)于一些系統(tǒng)狀態(tài)程序,比如ps命令變得可見(jiàn),可以讓其他用戶調(diào)用來(lái)顯示你的命令。一般mysql客戶端通常會(huì)在初始化序列期間用零覆蓋命令行參數(shù),但是仍然有一個(gè)短暫間隔時(shí)間內(nèi)參數(shù)值可見(jiàn)的。
比如,你使用shell> mysql -u ksharpdabu -pksharppassword db_name &
將命令掛起,用shell >ps –f 命令產(chǎn)看,就會(huì)發(fā)現(xiàn)結(jié)果如下:
?
密碼參數(shù)值變成了星號(hào),不可見(jiàn),但是,如果你kill的時(shí)候,還是能看到你的密碼參數(shù)值。
第二種:使用一個(gè) -p 或者 --password 選項(xiàng)(后面不指定密碼),在這種情況下,客戶端程序請(qǐng)求來(lái)自終端的密碼:
?
?
因?yàn)樗鼘?duì)其他用戶不可見(jiàn),與在命令行指定相比,這樣登陸mysql服務(wù)器會(huì)更加安全。但是,這個(gè)只能用于交互式運(yùn)行程序,我們大部分情況下都是非交互的運(yùn)行一個(gè)腳本調(diào)用客戶端,就不能使用這種方法了。在某些系統(tǒng)中,甚至?xí)l(fā)現(xiàn)腳本的第一行被錯(cuò)誤地讀并解釋為我們的mysql登陸密碼。
第三種:在一個(gè)配置文件中存儲(chǔ)你的密碼,例如,在Unix中,可以在主目錄的“.my.cnf”文件中[client]節(jié)列出你的密碼。
舉例:
?
當(dāng)然,如果你在“.my.cnf”里存儲(chǔ)了密碼,就一定要保管好這個(gè)文件,除了自己本人,絕不能讓其他人能訪問(wèn)該文件。保證文件的訪問(wèn)模式是:400或600。
使用如下命令:
?
附上在Unix中,MySQL程序讀取啟動(dòng)選項(xiàng)的文件列表:

MYSQL_HOME是一個(gè)環(huán)境變量,包含服務(wù)器相關(guān)的my.cnf文件駐留的目錄路徑。
如果未設(shè)置MYSQL_HOME,并且DATADIR中有一個(gè)my.cnf文件,BASEDIR中沒(méi)有my.cnf文件,mysqld_safe將MYSQL_HOME設(shè)置為DATADIR。否則,如果未設(shè)置MYSQL_HOME并且在DATADIR中沒(méi)有my.cnf,則mysqld_safe將MYSQL_HOME設(shè)置為BASEDIR。
典型情況二進(jìn)制安裝的目錄為/usr/local/mysql/data或源代碼安裝的目錄為/usr/local/var。請(qǐng)注意這是配置時(shí)指定的數(shù)據(jù)目錄的位置,而不是 mysqld啟動(dòng)時(shí)用--datadir指定的。運(yùn)行時(shí)使用--datadir對(duì)尋找選項(xiàng)文件的服務(wù)器沒(méi)有效果,因?yàn)榉⻊?wù)器在處理命令行參量之前尋找這些選項(xiàng)。
MySQL按照上述順序?qū)ふ疫x項(xiàng)文件,并讀存在的選項(xiàng)文件。如果你想要使用的某個(gè)選項(xiàng)文件不存在,則用明文文本編輯器創(chuàng)建。如果存在多個(gè)選項(xiàng)文件,文件中指定的后讀取的選項(xiàng)要優(yōu)先文件中指定的先讀取的選項(xiàng)。
注釋:在Unix平臺(tái)上,MySQL忽略人人可寫的配置文件。這是故意的,是一個(gè)安全措施。
任何可以在運(yùn)行MySQL程序時(shí)在命令行給出的長(zhǎng)選項(xiàng)也可以在選項(xiàng)文件中給出。要想列出程序的適用選項(xiàng),用--help選項(xiàng)運(yùn)行程序。
其他系統(tǒng)下的配置文件列表如下,
在Windows中,MySQL程序從以下文件讀取啟動(dòng)選項(xiàng):

第四種:在MYSQL_PWD環(huán)境變量中存儲(chǔ)密碼
但是這種指定MySQL密碼的方法是極不安全的,不應(yīng)該使用。ps的某些版本包括顯示運(yùn)行進(jìn)程的環(huán)境的選
項(xiàng);如果你設(shè)定MYSQL_PWD,你的密碼將被運(yùn)行ps的所有人看見(jiàn),甚至在沒(méi)有這樣一個(gè)版本的ps的系統(tǒng)上,也可能被觀察到。
在Unix上,mysql的客戶端會(huì)將執(zhí)行的命令保存在歷史記錄文件里。在默認(rèn)情況下,這個(gè)文件被命名為 .mysql_history ,創(chuàng)建在你的home目錄下。密碼作為純文本記錄在如 CREATE USER, GRANT, 和 SET PASSWORD 這些語(yǔ)句里面。所以如果使用了這些語(yǔ)句,他們就被記錄在這個(gè)歷史文件里。為了保證安全,應(yīng)該嚴(yán)格顯示這個(gè)文件的訪問(wèn)模式,就和對(duì)剛才說(shuō)的 .my.cnf 文件一樣。
如果你的命令解釋器配置為保持歷史,這些歷史記錄文件,其中將包含在命令行中輸入MySQL的密碼。例如,bash中使用?/.bash_history的。任何這樣的文件應(yīng)該有一個(gè)嚴(yán)格的訪問(wèn)模式。
分享:在Linux系統(tǒng)的命令行中為MySQL創(chuàng)建用戶的方法這篇文章主要介紹了在Linux系統(tǒng)的命令行中為MySQL創(chuàng)建用戶的方法,包括對(duì)所建用戶的權(quán)限管理,需要的朋友可以參考下 要訪問(wèn)一個(gè)MySQL服務(wù)器,你需要使用一個(gè)用戶帳號(hào)登錄其中方可進(jìn)行。每個(gè)MySQL用戶帳號(hào)都有許多與之相關(guān)連的屬性,例如用戶名、密碼以及權(quán)限和資源限制。
- MySQL在Linux系統(tǒng)中隱藏命令行中的密碼的方法
- 在Linux系統(tǒng)的命令行中為MySQL創(chuàng)建用戶的方法
- MySQL中使用Sphinx實(shí)現(xiàn)多線程搜索的方法
- mysql數(shù)據(jù)庫(kù)索引損壞及修復(fù)經(jīng)驗(yàn)分享
- Windows Server 2003 下配置 MySQL 集群(Cluster)教程
- 在CentOS上安裝phpMyAdmin的教程
- 防止服務(wù)器宕機(jī)時(shí)MySQL數(shù)據(jù)丟失的幾種方案
- MySQL Semisynchronous Replication介紹
- MySQL延遲關(guān)聯(lián)性能優(yōu)化方法
- MySQL 5.7增強(qiáng)版Semisync Replication性能優(yōu)化
- MySQL Index Condition Pushdown(ICP)性能優(yōu)化方法實(shí)例
- MySQL order by性能優(yōu)化方法實(shí)例
MySQL教程Rss訂閱編程教程搜索
MySQL教程推薦
猜你也喜歡看這些
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- 探討SQL Server中Case 的不同用法
- 淺談SQL server與asp 互操作的時(shí)間處理
- SQL參數(shù)化查詢的另一個(gè)理由——命中執(zhí)行計(jì)劃
- 觸發(fā)器學(xué)習(xí)
- 探討SQL Server 2005的評(píng)價(jià)函數(shù)
- 解析J2EE中SQL語(yǔ)句自動(dòng)構(gòu)造方法
- 解析SQL觸發(fā)器在保持?jǐn)?shù)據(jù)庫(kù)完整性中的實(shí)際應(yīng)用
- SQL Server 2005代理服務(wù)應(yīng)用軟件組成
- 探討SQL Server 2005.NET CLR編程
- 相關(guān)鏈接:
- 教程說(shuō)明:
MySQL教程-MySQL安全輸入密碼的一些操作介紹
。