首頁  >  文章  >  資料庫  >  mysql怎麼增加權限

mysql怎麼增加權限

青灯夜游
青灯夜游原創
2022-04-12 15:25:315828瀏覽

mysql中可用GRANT語句為使用者增加權限,語法「GRANT 權限類型ON 權限等級值TO user [IDENTIFIED BY '密碼'] [WITH子句];」;其中參數「user」表示使用者帳號,格式為「'使用者名稱'@'主機名稱'」。

mysql怎麼增加權限

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

在 MySQL 中,可以利用GRANT 語句為使用者授權,增加權限。

其語法格式如下:

GRANT priv_type [(column_list)] ON database.table
TO user [IDENTIFIED BY 'password']
[WITH with_option [with_option]...]

其中:

  • #priv_type 參數表示權限類型;

  • ## columns_list 參數表示權限作用於哪些欄位上,省略該參數時,表示作用於整個表;
  • database.table 用於指定權限的層級;
  • #user 參數表示使用者帳戶,由使用者名稱和主機名稱構成,格式是「'username'@'hostname'」;
  • IDENTIFIED BY 參數用來為使用者設定密碼;

password 參數是使用者的新密碼。
  • MySQL 中可以授予的權限有以下幾組:
  • #列權限,和表格中的一個具體欄位相關。例如,可以使用 UPDATE 語句更新表格 students 中 name 欄位的值的權限。
  • 表格權限,和一個具體表中的所有資料相關。例如,可以使用 SELECT 語句查詢表格 students 的所有資料的權限。
  • 資料庫權限,和一個具體的資料庫中的所有表格相關。例如,可以在現有的資料庫 mytest 中建立新表的權限。
  • 使用者權限,和 MySQL 中所有的資料庫相關。例如,可以刪除已有的資料庫或建立新的資料庫的權限。
  • 對應地,在GRANT 語句中可用來指定權限等級的值有下列幾類格式:

*:表示目前資料庫中的所有表。

*.*:表示所有資料庫中的所有表格。

db_name.*:表示某個資料庫中的所有表,db_name 指定資料庫名稱。

mysql怎麼增加權限db_name.tbl_name:表示某個資料庫中的某個表或視圖,db_name 指定資料庫名,tbl_name 指定表名或視圖名。

db_name.routine_name:表示某個資料庫中的某個預存程序或函數,routine_name 指定預存程序名稱或函數名稱。

###TO 子句:如果權限被授予給不存在的用戶,MySQL 會自動執行一條 CREATE USER 語句來建立這個用戶,但同時必須為該用戶設定密碼。 ###############在MySQL 中,擁有GRANT 權限的使用者才可以執行 GRANT 語句.############範例:###### ###使用GRANT 語句建立一個新的使用者testUser,密碼為testPwd。使用者 testUser 對所有的資料有查詢、插入權限,並授予 GRANT 權限。 ###
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)授予資料庫權限時,可以指定為下列值:###
權限名稱 對應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) 授予表格權限時,可以指定為以下值:

##授予使用者可以使用UPDATE 語句更新特定資料表的權限ALTERAlter_priv 授予使用者可以使用ALTER TABLE 語句修改資料表的權限#REFERENCESReferences_priv授予使用者可以建立一個外鍵來參考特定資料表的權限CREATE#Create_priv 授予使用者可以使用特定的名字建立一個資料表的權限INDEXIndex_priv授予使用者可以在表上定義索引的權限ALL 或ALL PRIVILEGES 或SUPERSuper_priv#3) 授予列權限時,的值只能指定為SELECT、INSERT 和UPDATE,同時權限的後面需要加上列名清單column-list。
#權限名稱 對應user表中的欄位 說明
SELECT #Select_priv 授予使用者可以使用SELECT 語句進行存取特定資料表的權限
INSERT Insert_priv 授予使用者可以使用INSERT 語句向一個特定表中新增資料行的權限
DELETE Delete_priv 授予使用者可以使用DELETE 語句從特定表中刪除資料行的權限
DROP #Drop_priv 授予使用者可以刪除資料表的權限
UPDATE Update_priv
##所有的權限名稱

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

授予使用者權限時,除了可以指定為授予資料庫權限時的所有值之外,還可以是下面這些值:

    CREATE USER:表示授予使用者可以建立和刪除新使用者的權限。
  • SHOW DATABASES:表示授予使用者可以使用 SHOW DATABASES 語句查看所有現有的資料庫的定義的權限。
  • 【相關推薦:
mysql影片教學

以上是mysql怎麼增加權限的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn