日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

MySQL用户授权

發(fā)布時(shí)間:2025/3/12 数据库 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL用户授权 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

成功創(chuàng)建用戶賬戶后,還不能執(zhí)行任何操作,需要為該用戶分配適當(dāng)?shù)脑L問(wèn)權(quán)限。可以使用 SHOW GRANT FOR 語(yǔ)句來(lái)查詢用戶的權(quán)限。

注意:新創(chuàng)建的用戶只有登錄 MySQL 服務(wù)器的權(quán)限,沒(méi)有任何其他權(quán)限,不能進(jìn)行其他操作。

USAGE ON*.* 表示該用戶對(duì)任何數(shù)據(jù)庫(kù)和任何表都沒(méi)有權(quán)限。

授予用戶權(quán)限

對(duì)于新建的 MySQL 用戶,必須給它授權(quán),可以用 GRANT 語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)新建用戶的授權(quán)。

語(yǔ)法格式:

GRANT <權(quán)限類型> [ ( <列名> ) ] [ , <權(quán)限類型> [ ( <列名> ) ] ] ON <對(duì)象> <權(quán)限級(jí)別> TO <用戶> 其中<用戶>的格式: <用戶名> [ IDENTIFIED ] BY [ PASSWORD ] <口令> [ WITH GRANT OPTION] | MAX_QUERIES_PER_HOUR <次數(shù)> | MAX_UPDATES_PER_HOUR <次數(shù)> | MAX_CONNECTIONS_PER_HOUR <次數(shù)> | MAX_USER_CONNECTIONS <次數(shù)>

語(yǔ)法說(shuō)明如下:

1 <列名>
可選項(xiàng)。用于指定權(quán)限要授予給表中哪些具體的列。

2 ON 子句
用于指定權(quán)限授予的對(duì)象和級(jí)別,如在 ON 關(guān)鍵字后面給出要授予權(quán)限的數(shù)據(jù)庫(kù)名或表名等。

3 <權(quán)限級(jí)別>
用于指定權(quán)限的級(jí)別。可以授予的權(quán)限有如下幾組:

列權(quán)限,和表中的一個(gè)具體列相關(guān)。例如,可以使用 UPDATE 語(yǔ)句更新表 students 中 student_name 列的值的權(quán)限。表權(quán)限,和一個(gè)具體表中的所有數(shù)據(jù)相關(guān)。例如,可以使用 SELECT 語(yǔ)句查詢表 students 的所有數(shù)據(jù)的權(quán)限。數(shù)據(jù)庫(kù)權(quán)限,和一個(gè)具體的數(shù)據(jù)庫(kù)中的所有表相關(guān)。例如,可以在已有的數(shù)據(jù)庫(kù) mytest 中創(chuàng)建新表的權(quán)限。用戶權(quán)限,和 MySQL 中所有的數(shù)據(jù)庫(kù)相關(guān)。例如,可以刪除已有的數(shù)據(jù)庫(kù)或者創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)的權(quán)限。

對(duì)應(yīng)地,在 GRANT 語(yǔ)句中可用于指定權(quán)限級(jí)別的值有以下幾類格式:

*:表示當(dāng)前數(shù)據(jù)庫(kù)中的所有表。*.*:表示所有數(shù)據(jù)庫(kù)中的所有表。db_name.*:表示某個(gè)數(shù)據(jù)庫(kù)中的所有表,db_name 指定數(shù)據(jù)庫(kù)名。db_name.tbl_name:表示某個(gè)數(shù)據(jù)庫(kù)中的某個(gè)表或視圖,db_name 指定數(shù)據(jù)庫(kù)名,tbl_name 指定表名或視圖名。tbl_name:表示某個(gè)表或視圖,tbl_name 指定表名或視圖名。db_name.routine_name:表示某個(gè)數(shù)據(jù)庫(kù)中的某個(gè)存儲(chǔ)過(guò)程或函數(shù),routine_name 指定存儲(chǔ)過(guò)程名或函數(shù)名。TO 子句:用來(lái)設(shè)定用戶口令,以及指定被賦予權(quán)限的用戶 user。若在 TO 子句中給系統(tǒng)中存在的用戶指定口令,則新密碼會(huì)將原密碼覆蓋;如果權(quán)限被授予給一個(gè)不存在的用戶,MySQL 會(huì)自動(dòng)執(zhí)行一條 CREATE USER 語(yǔ)句來(lái)創(chuàng)建這個(gè)用戶,但同時(shí)必須為該用戶指定口令。

GRANT語(yǔ)句中的<權(quán)限類型>的使用說(shuō)明如下:

1 授予數(shù)據(jù)庫(kù)權(quán)限時(shí),<權(quán)限類型>可以指定為以下值:

SELECT:表示授予用戶可以使用 SELECT 語(yǔ)句訪問(wèn)特定數(shù)據(jù)庫(kù)中所有表和視圖的權(quán)限。INSERT:表示授予用戶可以使用 INSERT 語(yǔ)句向特定數(shù)據(jù)庫(kù)中所有表添加數(shù)據(jù)行的權(quán)限。DELETE:表示授予用戶可以使用 DELETE 語(yǔ)句刪除特定數(shù)據(jù)庫(kù)中所有表的數(shù)據(jù)行的權(quán)限。UPDATE:表示授予用戶可以使用 UPDATE 語(yǔ)句更新特定數(shù)據(jù)庫(kù)中所有數(shù)據(jù)表的值的權(quán)限。REFERENCES:表示授予用戶可以創(chuàng)建指向特定的數(shù)據(jù)庫(kù)中的表外鍵的權(quán)限。CREATE:表示授權(quán)用戶可以使用 CREATE TABLE 語(yǔ)句在特定數(shù)據(jù)庫(kù)中創(chuàng)建新表的權(quán)限。ALTER:表示授予用戶可以使用 ALTER TABLE 語(yǔ)句修改特定數(shù)據(jù)庫(kù)中所有數(shù)據(jù)表的權(quán)限。SHOW VIEW:表示授予用戶可以查看特定數(shù)據(jù)庫(kù)中已有視圖的視圖定義的權(quán)限。CREATE ROUTINE:表示授予用戶可以為特定的數(shù)據(jù)庫(kù)創(chuàng)建存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的權(quán)限。ALTER ROUTINE:表示授予用戶可以更新和刪除數(shù)據(jù)庫(kù)中已有的存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的權(quán)限。INDEX:表示授予用戶可以在特定數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)表上定義和刪除索引的權(quán)限。DROP:表示授予用戶可以刪除特定數(shù)據(jù)庫(kù)中所有表和視圖的權(quán)限。CREATE TEMPORARY TABLES:表示授予用戶可以在特定數(shù)據(jù)庫(kù)中創(chuàng)建臨時(shí)表的權(quán)限。CREATE VIEW:表示授予用戶可以在特定數(shù)據(jù)庫(kù)中創(chuàng)建新的視圖的權(quán)限。EXECUTE ROUTINE:表示授予用戶可以調(diào)用特定數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的權(quán)限。LOCK TABLES:表示授予用戶可以鎖定特定數(shù)據(jù)庫(kù)的已有數(shù)據(jù)表的權(quán)限。ALL 或 ALL PRIVILEGES:表示以上所有權(quán)限。

2 授予表權(quán)限時(shí),<權(quán)限類型>可以指定為以下值:

SELECT:授予用戶可以使用 SELECT 語(yǔ)句進(jìn)行訪問(wèn)特定表的權(quán)限。INSERT:授予用戶可以使用 INSERT 語(yǔ)句向一個(gè)特定表中添加數(shù)據(jù)行的權(quán)限。DELETE:授予用戶可以使用 DELETE 語(yǔ)句從一個(gè)特定表中刪除數(shù)據(jù)行的權(quán)限。DROP:授予用戶可以刪除數(shù)據(jù)表的權(quán)限。UPDATE:授予用戶可以使用 UPDATE 語(yǔ)句更新特定數(shù)據(jù)表的權(quán)限。ALTER:授予用戶可以使用 ALTER TABLE 語(yǔ)句修改數(shù)據(jù)表的權(quán)限。REFERENCES:授予用戶可以創(chuàng)建一個(gè)外鍵來(lái)參照特定數(shù)據(jù)表的權(quán)限。CREATE:授予用戶可以使用特定的名字創(chuàng)建一個(gè)數(shù)據(jù)表的權(quán)限。INDEX:授予用戶可以在表上定義索引的權(quán)限。ALL 或 ALL PRIVILEGES:所有的權(quán)限名。

3 授予列權(quán)限時(shí),<權(quán)限類型>的值只能指定為 SELECT、INSERT 和 UPDATE,同時(shí)權(quán)限的后面需要加上列名列表 column-list。

4 最有效率的權(quán)限是用戶權(quán)限。
授予用戶權(quán)限時(shí),<權(quán)限類型>除了可以指定為授予數(shù)據(jù)庫(kù)權(quán)限時(shí)的所有值之外,還可以是下面這些值:

CREATE USER:表示授予用戶可以創(chuàng)建和刪除新用戶的權(quán)限。SHOW DATABASES:表示授予用戶可以使用 SHOW DATABASES 語(yǔ)句查看所有已有的數(shù)據(jù)庫(kù)的定義的權(quán)限。

使用 GRANT 語(yǔ)句創(chuàng)建一個(gè)新的用戶 testUser,密碼為 testPwd。用戶 testUser 對(duì)所有的數(shù)據(jù)有查詢、插入權(quán)限,并授予 GRANT 權(quán)限。輸入的 SQL 語(yǔ)句和執(zhí)行過(guò)程如下所示。

mysql> GRANT SELECT,INSERT ON *.*-> TO 'testUser'@'localhost'-> IDENTIFIED BY 'testPwd'-> WITH GRANT OPTION; Query OK, 0 rows affected, 1 warning (0.05 sec)

使用 SELECT 語(yǔ)句查詢用戶 testUser 的權(quán)限,如下所示。

mysql> SELECT Host,User,Select_priv,Grant_priv-> FROM mysql.user-> WHERE User='testUser'; +-----------+----------+-------------+------------+ | Host | User | Select_priv | Grant_priv | +-----------+----------+-------------+------------+ | localhost | testUser | Y | Y | +-----------+----------+-------------+------------+ 1 row in set (0.01 sec)

總結(jié)

以上是生活随笔為你收集整理的MySQL用户授权的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。