MySQL創建用戶的三種方法 (並授權)轉


前言: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@' ;

說明:該方法創建出來的用戶只有連接數據庫的權限,需要后續繼續授權;

注意:用戶與@后主機地址是一體的,用一個分號連接,否則會報錯,ERROR 1396 (HY000): Operation CREATE USER failed for 'remote'@'%'


三、通過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。

查看權限:

show grants for你的用戶;
show grants forroot@'localhost';
show grants for webgametest@10.3.18.158;
show createdatabase dbname;  這個可以看到創建數據庫時用到的一些參數。
showcreatetabletickets;    可以看到創建表時用到的一些參數

撤銷權限:

revoke all on *.* from dba@localhost;

四、直接向mysql.user表插入記錄(該方法個人很少用)

因為數據庫的用戶信息都是保存在mysql.user這張表的,所以直接對該表進行插入語句,即可完成用戶的創建;

mysql> insert into user (host,user,password) values ('%','john',password('123'));

五、完成用戶的創建后,請記得刷新系統權限表;

mysql>flush privileges;


總結:雖然創建用戶的方法有三種,個人還是傾向於第二種方法,一步到位,簡單明了;

其他的兩種方法只是有助於理解數據庫的原理而已。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM