mysql創建用戶的方法分成三種:INSERT USER表的方法、CREATE USER的方法、GRANT的方法。
一、賬號名稱的構成方式
賬號的組成方式:用戶名+主機(所以可以出現重復的用戶名,跟其他的數據庫不一樣)
用戶名:16字符以內.
主機名:可以用主機名和IP地址,也可以用通配符
通配符說明:172.18.10.%(IP地址為172.18.10段的所有IP地址都可以訪問)
二、通過CREATE USER命令進行創建用戶
腳本:CREATE USER 'username'@'host' [IDENTIFIED BY 'PASSWORD'] 其中密碼是可選項;
例子:CREATE USER 'john'@'192.168.189.71' IDENTIFIED BY "123";
CREATE USER 'john'@'192.168.189.%' IDENTIFIED BY "123";
CREATE USER 'john'@' %' ;
說明:該方法創建出來的用戶只有連接數據庫的權限,需要后續繼續授權;
三、通過GRANT命令創建用戶
個人習慣一般用這種方法進行創建用戶,當數據庫存在用戶的時候GRANT會對用戶進行授權,但當數據庫不存在該用戶的時候,就會創建相應的用戶並進行授權。(說明上面那步是多余的)
腳本:
GRANT <ALL|priv1,priv2,.....privn> ON
[object] [IDENTIFIED BY 'password']
[WITH GRANT OPTION];
MAX_QUERIES_PER_HOUR count
MAX_UPDATES_PER_HOUR count
MAX_CONNECTIONS_PER_HOUR count
MAX_USER_CONNECTIONS count
說明:priv代表權限select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個權限
例子:mysql>grant select,insert,update,delete,create,drop on test.hr to john@192.168.10.1 identified by '123';
說明:給主機為192.168.10.1的用戶john分配可對數據庫test的hr表進行select,insert,update,delete,create,drop等操作的權限,並設定密碼為123。
mysql>grant all privileges on test.* to joe@192.168.10.1 identified by '123';
說明:給主機為192.168.10.1的用戶john分配可對數據庫test所有表進行所有操作的權限,並設定密碼為123。
mysql>grant all privileges on *.* to john@192.168.10.1 identified by '123';
說明:給主機為192.168.10.1的用戶john分配可對所有數據庫的所有表進行所有操作的權限,並設定密碼為123。
mysql>grant all privileges on *.* to john@localhost identified by '123';
說明:用戶john分配可對所有數據庫的所有表進行所有操作的權限,並設定口令為123。
四、直接向mysql.user表插入記錄
因為數據庫的用戶信息都是保存在mysql.user這張表的,所以直接對該表進行插入語句,即可完成用戶的創建;
mysql> insert into user (host,user,password) values ('%','john',password('123'));
五、完成用戶的創建后,刷新系統權限表;
mysql>flush privileges;