国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - MySQL GRANT用戶授權的實現

MySQL GRANT用戶授權的實現

2021-08-19 18:03biancheng Mysql

授權就是為某個用戶賦予某些權限。MySQL 提供了 GRANT 語句來為用戶設置權限。具有一定的參考價值,感興趣的小伙伴們可以參考一下

授權就是為某個用戶賦予某些權限。例如,可以為新建的用戶賦予查詢所有數據庫和表的權限。MySQL 提供了 GRANT 語句來為用戶設置權限。

在 MySQL 中,擁有 GRANT 權限的用戶才可以執行 GRANT 語句,其語法格式如下:

?
1
2
3
4
GRANT priv_type [(column_list)] ON database.table
TO user [IDENTIFIED BY [PASSWORD] 'password']
[, user[IDENTIFIED BY [PASSWORD] 'password']] ...
[WITH with_option [with_option]...]

其中:

  • priv_type 參數表示權限類型;
  • columns_list 參數表示權限作用于哪些列上,省略該參數時,表示作用于整個表;
  • database.table 用于指定權限的級別;
  • user 參數表示用戶賬戶,由用戶名和主機名構成,格式是“'username'@'hostname'”;
  • IDENTIFIED BY 參數用來為用戶設置密碼;
  • password 參數是用戶的新密碼。

WITH 關鍵字后面帶有一個或多個 with_option 參數。這個參數有 5 個選項,詳細介紹如下:

  • GRANT OPTION:被授權的用戶可以將這些權限賦予給別的用戶;
  • MAX_QUERIES_PER_HOUR count:設置每個小時可以允許執行 count 次查詢;
  • MAX_UPDATES_PER_HOUR count:設置每個小時可以允許執行 count 次更新;
  • MAX_CONNECTIONS_PER_HOUR count:設置每小時可以建立 count 個連接;
  • MAX_USER_CONNECTIONS count:設置單個用戶可以同時具有的 count 個連接。

MySQL 中可以授予的權限有如下幾組:

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

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

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

權限類型說明

下面講解 GRANT 語句中的權限類型(可參考《MySQL user表詳解》一節閱讀)。

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

 

權限名稱 對應user表中的字段 說明
SELECT Select_priv 表示授予用戶可以使用 SELECT 語句訪問特定數據庫中所有表和視圖的權限。
INSERT Insert_priv 表示授予用戶可以使用 INSERT 語句向特定數據庫中所有表添加數據行的權限。
DELETE Delete_priv 表示授予用戶可以使用 DELETE 語句刪除特定數據庫中所有表的數據行的權限。
UPDATE Update_priv 表示授予用戶可以使用 UPDATE 語句更新特定數據庫中所有數據表的值的權限。
REFERENCES References_priv 表示授予用戶可以創建指向特定的數據庫中的表外鍵的權限。
CREATE Create_priv 表示授權用戶可以使用 CREATE TABLE 語句在特定數據庫中創建新表的權限。
ALTER Alter_priv  表示授予用戶可以使用 ALTER TABLE 語句修改特定數據庫中所有數據表的權限。
SHOW VIEW Show_view_priv 表示授予用戶可以查看特定數據庫中已有視圖的視圖定義的權限。
CREATE ROUTINE Create_routine_priv 表示授予用戶可以為特定的數據庫創建存儲過程和存儲函數的權限。
ALTER ROUTINE Alter_routine_priv 表示授予用戶可以更新和刪除數據庫中已有的存儲過程和存儲函數的權限。
INDEX Index_priv 表示授予用戶可以在特定數據庫中的所有數據表上定義和刪除索引的權限。
DROP Drop_priv 表示授予用戶可以刪除特定數據庫中所有表和視圖的權限。
CREATE TEMPORARY TABLES Create_tmp_table_priv 表示授予用戶可以在特定數據庫中創建臨時表的權限。
CREATE VIEW Create_view_priv 表示授予用戶可以在特定數據庫中創建新的視圖的權限。
EXECUTE ROUTINE Execute_priv 表示授予用戶可以調用特定數據庫的存儲過程和存儲函數的權限。
LOCK TABLES Lock_tables_priv 表示授予用戶可以鎖定特定數據庫的已有數據表的權限。
ALL 或 ALL PRIVILEGES 或 SUPER Super_priv 表示以上所有權限/超級權限

 

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

 

權限名稱 對應user表中的字段 說明
SELECT Select_priv 授予用戶可以使用 SELECT 語句進行訪問特定表的權限
INSERT Insert_priv 授予用戶可以使用 INSERT 語句向一個特定表中添加數據行的權限
DELETE Delete_priv 授予用戶可以使用 DELETE 語句從一個特定表中刪除數據行的權限
DROP Drop_priv 授予用戶可以刪除數據表的權限
UPDATE Update_priv 授予用戶可以使用 UPDATE 語句更新特定數據表的權限
ALTER Alter_priv  授予用戶可以使用 ALTER TABLE 語句修改數據表的權限
REFERENCES References_priv 授予用戶可以創建一個外鍵來參照特定數據表的權限
CREATE Create_priv 授予用戶可以使用特定的名字創建一個數據表的權限
INDEX Index_priv 授予用戶可以在表上定義索引的權限
ALL 或 ALL PRIVILEGES 或 SUPER Super_priv 所有的權限名

 

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

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

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

例 1

使用 GRANT 語句創建一個新的用戶 testUser,密碼為 testPwd。用戶 testUser 對所有的數據有查詢、插入權限,并授予 GRANT 權限。SQL 語句和執行過程如下。

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

使用 SHOW GRANTS 語句查詢用戶 testUser 的權限,如下所示。

?
1
2
3
4
5
6
7
mysql> SHOW GRANTS FOR 'testUser'@'localhost';
+-------------------------------------------------------------------------+
| Grants for testUser@localhost                                           |
+-------------------------------------------------------------------------+
| GRANT SELECT, INSERT ON *.* TO 'testUser'@'localhost' WITH GRANT OPTION |
+-------------------------------------------------------------------------+
1 row in set (0.00 sec)

結果顯示,testUser 對所有數據庫的所有表有查詢、插入權限,并可以將這些權限賦予給別的用戶。

拓展

數據庫管理員給普通用戶授權時一定要特別小心,如果授權不當,可能會給數據庫帶來致命的破壞。一旦發現給用戶的權限太多,應該盡快使用 REVOKE 語句將權限收回。此處特別注意,最好不要授予普通用戶 SUPER 權限,GRANT 權限。關于用戶權限的刪除,可閱讀學習《MySQL REVOKE:刪除用戶權限》一節。

到此這篇關于MySQL GRANT用戶授權的實現的文章就介紹到這了,更多相關MySQL GRANT用戶授權 內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:http://c.biancheng.net/view/7502.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: av网站入口| av影音资源 | 日韩亚洲 | 一本大道av伊人久久综合 | 国产精品毛片久久久久久久 | 国产精品久久久久久久久久免费看 | 成人av一区二区三区 | 在线a视频 | 色人久久 | 精品亚洲一区二区 | 中文字幕1区 | 99久久婷婷国产综合精品草原 | 国产一区亚洲 | 色综合久久88色综合天天6 | 欧美成人精品一区二区三区 | 日韩精品三区 | 亚洲电影在线播放 | 美女久久久 | 色8888www视频在线观看 | 精品视频一区在线观看 | 亚洲精品在线视频 | 国产免费一区二区三区 | 亚洲欧美日韩精品 | 精品一区二区在线看 | 人人干人人爱 | 欧美2区| 精品视频在线免费观看 | 国产综合精品一区二区三区 | 一级免费毛片 | 激情综合丁香 | 特级西西人体444www高清大胆 | 精品国产精品三级精品av网址 | 欧美激情网 | 精品一区二区久久久久久久网站 | 精品久久久久久久久久久下田 | 久久综合成人精品亚洲另类欧美 | 成人小视频在线观看 | 欧美日韩精品 | 成人午夜天堂 | 污视频网站在线观看 | 这里只有国产精品 |