MySQL是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務器。MySQL是以一個客戶機/服務器結構的實現(xiàn),它由一個服務器守護程序mysqld和很多不同的客戶程序和庫組成。由于其源碼的開放性及穩(wěn)定性,且與網(wǎng)站流行編徎語言PHP的完美結合,現(xiàn)在很多站點都利用其當作后端數(shù)據(jù)庫,使其獲得了廣泛應用。處于安全方面的考慮,需要為每一用戶賦于對不同數(shù)據(jù)庫的訪問限制,以滿足不同用戶的要求。下面就分別討論,供大家參考。 一、MySQL修改密碼方法總結 方法一 使用phpMyAdmin (圖形化管理MySql數(shù)據(jù)庫的工具),這是最簡單的,直接用SQL語句修改mysql數(shù)據(jù)庫庫的user表,不過別忘了使用PASSWORD函數(shù),插入用戶用Insert命令,修改用戶用Update命令,刪除用Delete命令。在本節(jié)后面有數(shù)據(jù)表user字段的詳細介紹。 方法二 使用mysqladmin。輸入 mysqladmin -u root -p oldpassword newpasswd 執(zhí)行這個命令后,需要輸入root的原密碼,這樣root的密碼將改為newpasswd。同樣,把命令里的root改為你的用戶名,你就可以改你自己的密碼了。 當然如果你的mysqladmin連接不上mysql server,或者你沒有辦法執(zhí)行mysqladmin,那么這種方法就是無效的,而且mysqladmin無法把密碼清空。 下面的方法都在mysql提示符下使用,且必須有mysql的root權限: 方法三 mysql"gt; INSERT INTO mysql.user (Host,User,Password) valueS (‘%‘,‘system‘, PASSWORD(‘manager‘)); 確切地說這是在增加一個用戶,用戶名為system,密碼為manager。注意要使用PASSWORD函數(shù),然后還要使用FLUSH PRIVILEGES來執(zhí)行確認。 方法四 和方法三一樣,只是使用了REPLACE語句 mysql"gt; REPLACE INTO mysql.user (Host,User,Password) 方法五 使用SET PASSWORD語句 mysql"gt; SET PASSWORD FOR system@"quot;%"quot; = PASSWORD(‘manager‘); 你也必須使用PASSWORD()函數(shù),但是不需要使用FLUSH PRIVILEGES來執(zhí)行確認。 方法六 使用GRANT ... IDENTIFIED BY語句,來進行授權。 mysql"gt; GRANT USAGE ON *.* TO system@"quot;%"quot; IDENTIFIED BY ‘manager‘; 這里PASSWORD()函數(shù)是不必要的,也不需要使用FLUSH PRIVILEGES來執(zhí)行確認。 注:PASSWORD()函數(shù)作用是為口令字加密,在程序中MySql自動解釋。 二、MySql中訪問限制的設置方法 進入到Mysql執(zhí)行目錄下(通常是c:\mysql\bin)。輸入mysqld-shareware.exe,輸入mysql --user=root mysql ,不然不能添加新用戶。進入到mysql"gt;提示符下進行操作。 假設我們要建立一個超級用戶,用戶名為system,用戶口令為manager。 方法一 用Grant 命令授權,輸入的代碼如下: mysql"gt;GRANT ALL PRIVILEGES ON *.* TO system@localhost IDENTIFIED BY ‘manager‘ WITH GRANT OPTION; 應顯示:Query OK, 0 rows affected (0.38 sec) 方法二 對用戶的每一項權限進行設置: mysql"gt;INSERT INTO user valueS(‘localhost‘,‘system‘,PASSWORD(‘manager‘), ‘Y‘,‘Y‘,‘Y‘,‘Y‘,‘Y‘,‘Y‘,‘Y‘,‘Y‘,‘Y‘,‘Y‘,‘Y‘,‘Y‘,‘Y‘,‘Y‘); 對于3.22.34版本的MySQL,這里共14個"quot;Y"quot;,其相應的權限如下(按字段順序排列): 權限 表列名稱 相應解釋 使用范圍 如果創(chuàng)建用戶時只有select、insert、update和delete權限,則允許用戶只能在一個數(shù)據(jù)庫現(xiàn)有的表上實施操作. 下面就可以創(chuàng)建我們要用到的數(shù)據(jù)庫了,我們直接輸入. 例如:我們要創(chuàng)建數(shù)據(jù)庫名為XinXiKu,可用如下代碼: mysql"gt;create database XinXiKu; 應顯示:Query OK, 1 row affected (0.00 sec) |
|