萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql 創建用戶與授權、修改密碼

mysql 創建用戶與授權、修改密碼

這一篇很基本的關於mysql數據庫中一些用戶權限的操作,這裡介紹了創建用戶與授權、修改密碼、刪除用戶等相關的sql語句,有需要了解學習的朋友可進入參考。

一, 創建用戶:

CREATE USER用於創建新的MySQL賬戶。要使用CREATE USER,您必須擁有mysql數據庫的全局CREATE USER權限,或擁有INSERT權限。對於每個賬戶,CREATE USER會在沒有權限的mysql.user表中創建一個新記錄。如果 賬戶已經存在,則出現錯誤。

使用自選的IDENTIFIED BY子句,可以為賬戶給定一個密碼。user值和 密碼的給定方法和GRANT語句一樣。特別是,要在純文本中指定密碼,需忽略PASSWORD關鍵詞。要把 密碼指定為由PASSWORD()函數返回的混編值,需包含關鍵字PASSWORD

 代碼如下 復制代碼

The create user command:

mysql> CREATE USER yy IDENTIFIED BY '123';

yy表示你要建立的用戶名,後面的123表示密碼

上面建立的用戶可以在任何地方登陸。

如果要限制在固定地址登陸,比如localhost 登陸:

 代碼如下 復制代碼

mysql> CREATE USER yy@localhost IDENTIFIED BY '123';


二,授權:

      命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

     說明: privileges - 用戶的操作權限,如SELECT , INSERT , UPDATE 等.如果要授予所的權限則使用 ALL.;databasename - 數據庫名,tablename-表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*表示, 如*.*.


例子:

 代碼如下 復制代碼 GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';


注意:用以上命令授權的用戶不能給其它用戶授權,如果想讓該用戶可以授權,用以下命令:

 代碼如下 復制代碼

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
刷新系統權限表

flush privileges;

用GRANT語句創建的賬戶有下面的屬性:

·         其中兩個賬戶有相同的用戶名monty和密碼some_pass。兩個賬戶均為超級用戶賬戶,具有完全的權限可以做任何事情。一個賬戶 ('monty'@'localhost')只用於從本機連接時。另一個賬戶('monty'@'%')可用於從其它主機連接。請注意monty的兩個賬戶必須能從任何主機以monty連接。沒有localhost賬戶,當monty從本機連接時,mysql_install_db創建的localhost的匿名用戶賬戶將占先。結果是,monty將被視為匿名用戶。原因是匿名用戶賬戶的Host列值比'monty'@'%'賬戶更具體,這樣在user表排序順序中排在前面。(user表排序的討論要參考mysql手冊)。

·         一個賬戶有用戶名admin,沒有密碼。該賬戶只用於從本機連接。授予了RELOAD和PROCESS管理權限。這些權限允許admin用戶執行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx命令,以及mysqladmin processlist。未授予訪問數據庫的權限。你可以通過GRANT語句添加此類權限。

·         一個賬戶有用戶名dummy,沒有密碼。該賬戶只用於從本機連接。未授予權限。通過GRANT語句中的USAGE權限,你可以創建賬戶而不授予任何權限。它可以將所有全局權限設為'N'。假定你將在以後將具體權限授予該賬戶。


三.設置與更改用戶密碼

     命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是當前登陸用戶用SET PASSWORD = PASSWORD("newpassword");

 代碼如下 復制代碼

      例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

  或:update mysql.user set password=password('新密碼') where User="phplamp" and Host="localhost";

四.撤銷用戶權限

 代碼如下 復制代碼

      命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';

     說明: privilege, databasename, tablename - 同授權部分.

      例子: REVOKE SELECT ON *.* FROM 'pig'@'%';

      注意: 假如你在給用戶'pig'@'%'授權的時候是這樣的(或類似的):GRANT SELECT ON test.user TO 'pig'@'%', 則在使用 REVOKE SELECT ON *.* FROM 'pig'@'%';命令並不能撤銷該用戶對test數據庫中user表的SELECT 操作.相反,如果授權使用的是GRANT SELECT ON *.* TO 'pig'@'%';則 REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤銷該用戶對test數據庫中user表的 Select 權限.

具體信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.

五.刪除用戶

 代碼如下 復制代碼

      命令: DROP USER 'username'@'host';

  或:DELETE FROM user WHERE User="phplamp" and Host="localhost";

  //刪除用戶的數據庫
  mysql>drop database phplampDB;

六.修改密碼:

 代碼如下 復制代碼

 
<!---->mysql> grant   all   privileges   on   pureftpd.*   to   koko@localhost   identified   by   'mimi';  

flush:

<!---->mysql> flush privileges;
 
查看用戶信息:

<!---->mysql> select host,user from mysql.user; 

copyright © 萬盛學電腦網 all rights reserved