void

          MySql帳戶的創建與刪除、口令更改

          . 創建用戶賬戶可以用三種方式創建MySQL賬戶:

          1 使用GRANT語句

          2 直接操作MySQL授權表

          3 使用CREATE USER語句

          最好的方法是使用GRANT語句,因為這樣更精確,錯誤少。

          創建賬戶的其它方法是使用MySQL賬戶管理功能的第三方程序。phpMyAdmin即是一個程序。

          下面的示例說明如何使用MySQL客戶端程序來設置新用戶。為了更改,你必須以MySQL root用戶連接MySQL服務器,并且root賬戶必須有mysql數據庫的INSERT權限和RELOAD管理權限。

          首先,使用MySQL程序以MySQL root用戶來連接服務器:

          shell> MySQL --user=root MySQL

          如果你為root賬戶指定了密碼,還需要為該MySQL命令和本節中的其它命令提供--password-p選項。

          root連接到服務器上后,可以添加新賬戶。下面的語句使用GRANT來設置四個新賬戶:

          mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
                   ->          IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
          mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
                   ->          IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
          mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
          mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';

          除了GRANT,你可以直接用INSERT語句創建相同的賬戶,然后使用FLUSH PRIVILEGES告訴服務器重載授權表:

          shell> mysql --user=root mysql
          mysql> INSERT INTO user
                   ->          VALUES('localhost','monty',PASSWORD('some_pass'),
                   ->          'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
          mysql> INSERT INTO user
                   ->          VALUES('%','monty',PASSWORD('some_pass'),
                   ->          'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
          mysql> INSERT INTO user SET Host='localhost',User='admin',
                   ->          Reload_priv='Y', Process_priv='Y';
          mysql> INSERT INTO user (Host,User,Password)
                   ->          VALUES('localhost','dummy','');
          mysql> FLUSH PRIVILEGES;

          當你用INSERT創建賬戶時使用FLUSH PRIVILEGES的原因是告訴服務器重讀授權表。否則,只有重啟服務器后更改方會被注意到。使用 GRANT,則不需要使用FLUSH PRIVILEGES

          INSERT使用PASSWORD()函數是為了加密密碼。GRANT語句為你加密密碼,因此不需要PASSWORD()

          'Y'值啟用賬戶權限。對于admin賬戶,還可以使用更加可讀的INSERT擴充的語法(使用SET)。

          在為dummy賬戶的INSERT語句中,只有user表中的HostUserPassword列記錄為指定的值。沒有一個權限列為顯式設置,因此MySQL將它們均指定為 默認值'N'。這樣等同于GRANT USAGE的操作。

          請注意要設置超級用戶賬戶,只需要創建一個權限列設置為'Y'user表條目。user表權限為全局權限,因此其它 授權表不再需要條目。

          第三種方法,CREATE USER語句。
          shell> mysql --user=root
          mysql> create user 'jian'@'localhost' identified by 'my123';#賬戶密碼設置和grant語句類似

          2.刪除用戶賬戶

          要想移除賬戶,應使用DROP USER語句.

          mysql>drop user 'jian'@'localhost';

          3.更改賬戶口令

          設置MySQL用戶帳號密碼的方法有三種:

          • 使用mysqladmin程序:

            % mysqladmin -h localhost -u root password "password"   #設置在本地以root身分登錄的密碼
            % mysqladmin -h remote -u root password "password" #設置遠程主機以root身分登錄的密碼

            在初始設置時,這兩條語句都要運行,以確保數據庫本地訪問和網絡訪問的安全。

          • 通過set password這條SQL語句設置:

            mysql> set password for 'root'@'localhost' = password('password');
            mysql> set password for 'root'@'remote' = password('password');
          • 直接修改user權限表:

            mysql> use mysql;
            mysql> update user set password=password('password') where user='root';
            mysql> flush privileges; #重載權限表,使修改馬上生效

          posted on 2008-08-20 10:08 void 閱讀(1006) 評論(0)  編輯  收藏 所屬分類: MySql

          主站蜘蛛池模板: 内乡县| 霍林郭勒市| 东山县| 岳阳县| 桓台县| 同德县| 府谷县| 喀喇| 甘德县| 互助| 且末县| 洛扎县| 洮南市| 丰原市| 新晃| 宜都市| 淮南市| 肇源县| 荥经县| 白城市| 仲巴县| 台安县| 红河县| 通榆县| 台山市| 英超| 沂源县| 蕉岭县| 温泉县| 广西| 罗城| 大同市| 正蓝旗| 桐乡市| 云梦县| 郑州市| 安福县| 确山县| 长乐市| 封丘县| 泰宁县|