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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL用户授权(GRANT)

發布時間:2025/3/20 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL用户授权(GRANT) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當成功創建用戶賬戶后,還不能執行任何操作,需要為該用戶分配適當的訪問權限??梢允褂?SHOW GRANT FOR 語句來查詢用戶的權限。

?

注意:新創建的用戶只有登錄 MySQL 服務器的權限,沒有任何其他權限,不能進行其他操作。

USAGE ON*.* 表示該用戶對任何數據庫和任何表都沒有權限。

授予用戶權限

對于新建的 MySQL 用戶,必須給它授權,可以用 GRANT 語句來實現對新建用戶的授權。

語法格式:

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

語法說明如下:

1) <列名>

可選項。用于指定權限要授予給表中哪些具體的列。

2) ON 子句

用于指定權限授予的對象和級別,如在 ON 關鍵字后面給出要授予權限的數據庫名或表名等。

3) <權限級別>

用于指定權限的級別??梢允谟璧臋嘞抻腥缦聨捉M:

  • 列權限,和表中的一個具體列相關。例如,可以使用 UPDATE 語句更新表 students 中 student_name 列的值的權限。
  • 表權限,和一個具體表中的所有數據相關。例如,可以使用 SELECT 語句查詢表 students 的所有數據的權限。
  • 數據庫權限,和一個具體的數據庫中的所有表相關。例如,可以在已有的數據庫 mytest 中創建新表的權限。
  • 用戶權限,和 MySQL 中所有的數據庫相關。例如,可以刪除已有的數據庫或者創建一個新的數據庫的權限。

對應地,在 GRANT 語句中可用于指定權限級別的值有以下幾類格式:

  • *:表示當前數據庫中的所有表。
  • *.*:表示所有數據庫中的所有表。
  • db_name.*:表示某個數據庫中的所有表,db_name 指定數據庫名。
  • db_name.tbl_name:表示某個數據庫中的某個表或視圖,db_name 指定數據庫名,tbl_name 指定表名或視圖名。
  • tbl_name:表示某個表或視圖,tbl_name 指定表名或視圖名。
  • db_name.routine_name:表示某個數據庫中的某個存儲過程或函數,routine_name 指定存儲過程名或函數名。
  • TO 子句:用來設定用戶口令,以及指定被賦予權限的用戶 user。若在 TO 子句中給系統中存在的用戶指定口令,則新密碼會將原密碼覆蓋;如果權限被授予給一個不存在的用戶,MySQL 會自動執行一條 CREATE USER 語句來創建這個用戶,但同時必須為該用戶指定口令。

GRANT語句中的<權限類型>的使用說明如下:

1) 授予數據庫權限時,<權限類型>可以指定為以下值:

  • SELECT:表示授予用戶可以使用 SELECT 語句訪問特定數據庫中所有表和視圖的權限。
  • INSERT:表示授予用戶可以使用 INSERT 語句向特定數據庫中所有表添加數據行的權限。
  • DELETE:表示授予用戶可以使用 DELETE 語句刪除特定數據庫中所有表的數據行的權限。
  • UPDATE:表示授予用戶可以使用 UPDATE 語句更新特定數據庫中所有數據表的值的權限。
  • REFERENCES:表示授予用戶可以創建指向特定的數據庫中的表外鍵的權限。
  • CREATE:表示授權用戶可以使用 CREATE TABLE 語句在特定數據庫中創建新表的權限。
  • ALTER:表示授予用戶可以使用 ALTER TABLE 語句修改特定數據庫中所有數據表的權限。
  • SHOW VIEW:表示授予用戶可以查看特定數據庫中已有視圖的視圖定義的權限。
  • CREATE ROUTINE:表示授予用戶可以為特定的數據庫創建存儲過程和存儲函數的權限。
  • ALTER ROUTINE:表示授予用戶可以更新和刪除數據庫中已有的存儲過程和存儲函數的權限。
  • INDEX:表示授予用戶可以在特定數據庫中的所有數據表上定義和刪除索引的權限。
  • DROP:表示授予用戶可以刪除特定數據庫中所有表和視圖的權限。
  • CREATE TEMPORARY TABLES:表示授予用戶可以在特定數據庫中創建臨時表的權限。
  • CREATE VIEW:表示授予用戶可以在特定數據庫中創建新的視圖的權限。
  • EXECUTE ROUTINE:表示授予用戶可以調用特定數據庫的存儲過程和存儲函數的權限。
  • LOCK TABLES:表示授予用戶可以鎖定特定數據庫的已有數據表的權限。
  • ALL 或 ALL PRIVILEGES:表示以上所有權限。

2) 授予表權限時,<權限類型>可以指定為以下值:

  • SELECT:授予用戶可以使用 SELECT 語句進行訪問特定表的權限。
  • INSERT:授予用戶可以使用 INSERT 語句向一個特定表中添加數據行的權限。
  • DELETE:授予用戶可以使用 DELETE 語句從一個特定表中刪除數據行的權限。
  • DROP:授予用戶可以刪除數據表的權限。
  • UPDATE:授予用戶可以使用 UPDATE 語句更新特定數據表的權限。
  • ALTER:授予用戶可以使用 ALTER TABLE 語句修改數據表的權限。
  • REFERENCES:授予用戶可以創建一個外鍵來參照特定數據表的權限。
  • CREATE:授予用戶可以使用特定的名字創建一個數據表的權限。
  • INDEX:授予用戶可以在表上定義索引的權限。
  • ALL 或 ALL PRIVILEGES:所有的權限名。

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

4) 最有效率的權限是用戶權限。

授予用戶權限時,<權限類型>除了可以指定為授予數據庫權限時的所有值之外,還可以是下面這些值:

  • CREATE USER:表示授予用戶可以創建和刪除新用戶的權限。
  • SHOW DATABASES:表示授予用戶可以使用 SHOW DATABASES 語句查看所有已有的數據庫的定義的權限。

【實例】使用 GRANT 語句創建一個新的用戶 testUser,已經為大家精心準備了大數據的系統學習資料,從Linux-Hadoop-spark-......,需要的小伙伴可以點擊密碼為 testPwd。用戶 testUser 對所有的數據有查詢、插入權限,并授予 GRANT 權限。輸入的 SQL 語句和執行過程如下所示。

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 語句查詢用戶 testUser 的權限,如下所示。

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)

?

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。