關聯課件: 3子項目三 - MySQL用戶管理(點擊在線預覽)
3.3.4 MySQL用戶管理
前面(miàn)進(jìn)入MySQL控制台時,使用的是MySQL的超級管理用戶,即用戶名爲root的用戶。事(shì)實上在實際應用中一台數據庫服務器往往多人同時使用,這(zhè)時如果隻有一個用戶賬号顯然不夠用。而且root用戶擁有對(duì)數據庫的全部權限,可以對(duì)數據庫進(jìn)行任意操作,當然不希望這(zhè)個賬号被一個一般的管理員使用。因此需要在MySQL中分配帳号,每個賬号可以管理各自的數據庫,不能(néng)越權。這(zhè)樣可以很好(hǎo)的提高數據庫的安全性。
在MySQL中,增加新用戶的方法主要有兩(liǎng)個:一是直接向(xiàng)MySQL用戶表中插入新記錄;二是使用grant授權命令。
MySQL的用戶賬号和密碼以及權限等信息,都(dōu)存儲在一個名爲“mysql”的數據庫的“user”表中(MySQL安裝完成(chéng)後(hòu)自動創建,可以在控制台下查看)。分别執行以下兩(liǎng)個命令:
mysql> use mysql
mysql> select * from user;
這(zhè)時可以看到類似于下面(miàn)樣式的返回結果(以下結果進(jìn)行過(guò)簡化)
----------- ------- ------------------ ------------- ------------- ------------
| Host | User | Password ……
| % | root | 1c8bc9fa64c40b82 ……
----------- ------- ------------------ ------------- ------------- ------------
1 rows in set (0.00 sec)
可以看到查詢出了user表中的記錄,每條記錄就是一個用戶賬号信息。由于user表有數十個字段,因此讀者看到的查詢結果可能(néng)顯示的比較零亂,這(zhè)是由于屏幕尺寸有限,無法在一行内顯示出所有字段,自動換行後(hòu)導緻的。
新安裝的MySQL,一般USER表中有兩(liǎng)個用戶,分别是root和匿名用戶。匿名用戶即不需要用戶名和密碼即可進(jìn)入系統的用戶。
在user表中,前3個字段Host、User、Password分别表示登錄主機、用戶名和密碼。登錄主機表示此用戶允許登錄的主機地址,即IP地址。“%”表示任意主機。如果本用戶隻能(néng)從本地登錄,不允許遠程登錄,可以用“localhost”或本機IP地址。用戶密碼用加密方式存儲,因此看到的密碼是一串無規則的字符串。從第4個字段以後(hòu)的字段,表示權限狀态,即該用戶是否有某權限。這(zhè)些權限包括查詢權限、修改權限、删除權限等。
知道(dào)了MySQL存儲用戶的基本原理,就自然可以想到,增加一個用戶的第一種(zhǒng)方法就是直接向(xiàng)這(zhè)個表中插入新記錄。但是由于user表字段較多,用INSERT語句向(xiàng)表中插入記錄比較麻煩,因此這(zhè)種(zhǒng)方法雖然可行,但很少被采用。
創建新用戶以及爲用戶分配權限的第二種(zhǒng)方法是使用GRANT命令。GRANT命令功能(néng)強大,相比于直接插入用戶簡單的多,因此是采用比較多的方法。下面(miàn)是GRANT命令的語法結構:
GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON {tbl_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY 'password']
[, user_name [IDENTIFIED BY 'password'] ...]
[WITH GRANT OPTION]
這(zhè)是完整的GRANT語句語法結構。看起(qǐ)來比較複雜。使用本命令可以一次創建多個MySQL賬号。在實際應用中一般一次隻創建一個用戶,這(zhè)樣語法結構就可以簡化爲:
GRANT priv_type [(column_list)]]
ON {tbl_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY 'password']
而到了具體的語句中,還(hái)可以繼續簡化。如:
mysql> GRANT ALL ON DB1.* to “Nie” IDENTIFIED BY “123456”;
此語句執行之後(hòu)創建用戶Nie,密碼123456,該用戶對(duì)數據庫DB1擁有全部權限。
下面(miàn)我們對(duì)GRANT語句的語法結構進(jìn)行簡要分析。
· GRANT——關鍵字,表示授權語句開(kāi)始。
· priv_type——權限類型。可以是select/delete/update/create/drop/alter等任意一種(zhǒng)。如果是全部權限,可以用all privileges,并且可以簡寫爲all。
· ON { tbl_name | * | *.* | db_name.*}——聲明此用戶可以操作哪些數據庫以及哪些表。聲明可以使用以下4種(zhǒng)方法之一:
Ø tbl_name:直接指定表名,如info。
Ø *:任意表。
Ø *.*:任意數據庫的任意表。
Ø db_name.*:指定數據庫的所有表,如db1。
· TO user_name:指定用戶名。即要創建的賬号的用戶名,如上例中的“Nie”。
· IDENTIFIED BY:此項目爲可選。指定賬号所對(duì)應的密碼。應用引号引起(qǐ)來。密碼提交後(hòu)會自動被加密。
本節介紹了MySQL中用戶管理的基本方法。尤其是講解了GRANT語句的使用方法。實際應用中該語句十分靈活、方便,熟練掌握GRANT語句可以在進(jìn)行MySQL管理時遊刃有餘。
MySQL分爲普通用戶與root用戶。這(zhè)兩(liǎng)種(zhǒng)用戶的權限不一樣。
内容很詳細,講解的很清楚。也很有趣,生動。
MySQL用戶管理講解的很到位,知識點都(dōu)很詳細。
老師講的很詳細,從中學(xué)到了很多。
1.權限表 MYSQL是一個多用戶的數據庫,MYSQL的用戶可以分爲兩(liǎng)大類: (1) 超級管理員用戶(root),擁有全部權限 (2) 普通用戶,由root創建,普通用戶隻擁有root所分配的權限
講的内容對(duì)于我們這(zhè)個階段來講是非常的實用的
直接向(xiàng)MySQL用戶表中插入新記錄,使用grant授權命令。有點懵
條理清晰,通俗易懂
講解到位,受益匪淺
比較具體,便于理解,對(duì)學(xué)習MySQL幫助很大
講的很細膩
介紹了MySQL中用戶管理的基本方法,尤其是講解了GRANT語句的使用方法,熟練掌握GRANT語句可以在進(jìn)行MySQL管理時遊刃有餘,很到位。
一直搞不懂這(zhè),看完視頻恍然大悟
介紹了MySQL中用戶管理的基本方法。尤其是講解了GRANT語句的使用方法。實際應用中該語句十分靈活、方便,熟練掌握GRANT語句可以在進(jìn)行MySQL管理時遊刃有餘。
通俗易懂 方便學(xué)習
内容詳細易懂,感謝老師