top
Loading...
5.8.6.使你的密碼安全
5.8.6. 使你的密碼安全

在管理級別,你決不能將mysql.user表的訪問權限授予任何非管理賬戶。

當你運行客戶端程序連接MySQL服務器時,以一種暴露的可被其他用戶發現的方式指定你的密碼是不妥當的。當你運行客戶端程序時,你可以使用下列方法指定你的密碼,還有每個方法的風險評估:

·         使用一個在命令行上-pyour_pass--password=your_pass的選項。例如:

·                shell> mysql -u francis -pfrank db_name

這很方便但是不安全,因為你的密碼對系統狀態程序(例如ps)變得可見,它可以被其他的用戶調用來顯示命令行。一般MySQL客戶在他們的初始化順序期間用零覆蓋命令行參數,但是仍然有一個短暫間隔時間內參數值可見的。

·         使用一個-p--password選項(沒有指定密碼)。在這種情況下,客戶端程序請求來自終端的密碼:

·                shell> mysql -u francis -p db_name
·                Enter password: ********

 *字符指示輸入密碼的地方。輸入密碼時密碼看不見。

因為它對其他用戶不可見,與在命令行上指定它相比,這樣進入你的密碼更安全。然而,這個輸入一個密碼的方法僅僅為你交互式運行程序是合適的。如果你想要從非交互式運行的一個腳本調用一個客戶端,就沒有從終端輸入入密碼的機會。在某些系統中,你甚至會發現腳本的第一行被(錯誤地)讀并解釋為你的密碼!

·         在一個配置文件中存儲你的密碼。例如,在Unix中,你可在主目錄的.my.cnf文件中的[client]節列出你的密碼:

·                [client]
·                password=your_pass

如果你在.my.cnf里面存儲密碼,除了你本人其它人不能訪問該文件。保證文件的訪問模式是400600例如:

shell> chmod 600 .my.cnf

關于選項文件的詳細討論參見4.3.2節,“使用選項文件”。

·         你可在MYSQL_PWD環境變量中存儲密碼。但是這種指定MySQL密碼的方法是極不安全的,不應該使用。ps的某些版本包括顯示運行進程的環境的選項;如果你設定MYSQL_PWD,你的密碼將被運行ps的所有人看見,甚至在沒有這樣一個版本的ps的系統上,沒有其它方法觀察到進程環境的假設是不明智的。參見附錄F:環境變量

總之,最安全的方法是讓客戶端程序提示輸入密碼或在適當保護的選項文件中指定密碼。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html
北斗有巢氏 有巢氏北斗