




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單元7MySQL用戶管理《MySQL數(shù)據(jù)庫管理與應用任務式教程(慕課版)》學習內容任務1管理學生成績管理數(shù)據(jù)庫的用戶
2任務2管理學生成績管理數(shù)據(jù)庫用戶的權限任務4卸載MySQL任務1管理學生成績管理數(shù)據(jù)庫的用戶7.1.1了解MySQL的權限表
MySQL在安裝時會自動創(chuàng)建一個名為mysql的系統(tǒng)數(shù)據(jù)庫,它保存了數(shù)據(jù)庫的賬戶信息、權限信息、存儲過程和時區(qū)等信息。
mysql>showdatabases;mysql>usemysql;mysql>showtables;執(zhí)行SHOWTABLES語句可以查看當前數(shù)據(jù)庫下存在的所有表,MySQL5.7.20版本中包含31張表,用戶權限信息被分別存儲在其中的user、db、host、tables_priv、columns_priv和procs_priv表中。在MySQL啟動時,服務器將這些表中權限信息讀入內存。當用戶登錄系統(tǒng)后,MySQL數(shù)據(jù)庫系統(tǒng)會根據(jù)這些表的內容為每個用戶賦予相應的權限。任務1管理學生成績管理數(shù)據(jù)庫的用戶mysql>descuser;mysql數(shù)據(jù)庫中的user表是MySQL中最重要的一個權限表,用來記錄允許連接到服務器的用戶信息,包括用戶名稱、主機名、密碼和操作權限等。使用descuser語句可以查看這些字段,它們可以分為4類,即用戶字段、權限字段、安全字段和資源控制字段。1.user表
任務1管理學生成績管理數(shù)據(jù)庫的用戶User表中的host、user和pssword字段都屬于用戶字段,存儲了用戶連接MySQL數(shù)據(jù)庫時需要輸入的信息。host表示主機名或主機的IP地址(即用戶連接MySQL時所用主機的名字)、user表示用戶名、authentication_string表示密碼字段。用戶登錄時,如果這3個字段同時匹配,MySQL數(shù)據(jù)庫系統(tǒng)才會允許其登錄。(1)用戶字段MySQL5.7版本不再使用Password來作為密碼字段。任務1管理學生成績管理數(shù)據(jù)庫的用戶可以看出,user字段的值有如下3個。①mysql.sys:用于sysschema中對象的定義。使用mysql.sys可避免數(shù)據(jù)庫管理員重命名或者刪除root用戶時發(fā)生問題。該用戶已被鎖定,客戶端無法連接。②mysql.session:用于插件內部訪問服務器。該用戶已被鎖定,客戶端無法連接。③root:用于管理。該用戶擁有所有權限,可執(zhí)行任何操作。host、user和password這3個字段決定了用戶能否登錄,用戶登錄時,會先判斷這3個字段的值是否同時匹配,若是,MySQL數(shù)據(jù)庫系統(tǒng)才會允許用戶登錄?!纠}7.1】使用select語句查看user表中的所有用戶。mysql>selecthost,user,authentication_stringfromuser;任務1管理學生成績管理數(shù)據(jù)庫的用戶user表中以_priv結尾的字段都是權限字段,如表7-1所示。權限字段決定了用戶的權限,用來描述在全局范圍內決定是否允許對數(shù)據(jù)和數(shù)據(jù)庫進行操作。(2)權限字段權限字段值的數(shù)據(jù)類型為ENUM,可取的值只有Y和N,Y表示用戶有對應的權限,N表示用戶沒有對應的權限。從安全角度考慮,這些字段的默認值都為N。任務1管理學生成績管理數(shù)據(jù)庫的用戶表7-1user表的權限字段及相關介紹屬性名對應權限字段說明select_privSELECT允許使用SELECT語句檢索數(shù)據(jù)insert_privINSERT允許使用INSERT語句插入數(shù)據(jù)update_privUPDATE允許使用UPDATE語句修改現(xiàn)有數(shù)據(jù)delete_privDELETE允許使用DELETE語句從表中刪除現(xiàn)有數(shù)據(jù)create_privCREATE允許創(chuàng)建新的數(shù)據(jù)庫和表,但是不允許創(chuàng)建索引drop_privDROP允許刪除現(xiàn)有的數(shù)據(jù)庫和表,但是不允許刪除索引reload_privRELOAD允許執(zhí)行大量的服務器管理操作,包括日志、權限、主機、查詢和表shutdown_privSHUTDOWN允許關閉MySQL服務器process_privPROCESS允許使用SHOWPROCESSLIST語句查看服務器內正在運行的線程(進程)的信息file_privFILE允許加載服務器主機上的文件grant_privGRANT允許將已經(jīng)授予某用戶的權限再授予其他用戶references_privREFERENCES目前并沒有多大的作用index_privINDEX允許創(chuàng)建和刪除表的索引任務1管理學生成績管理數(shù)據(jù)庫的用戶表7-1user表的權限字段及相關介紹屬性名對應權限字段說明alter_pivALTER允許重命名和修改表的結構show_db_privSHOWDATABASES允許查看所有的數(shù)據(jù)庫super_privSUPER允許使用某些強大的管理功能create_tmp_table_privCREATETEMPORARYTABLES允許創(chuàng)建臨時表lock_tables_privLOCAKTABLES允許使用LOCKTABLES語句鎖定表execute_privEXECUTE允許執(zhí)行存儲過程和自定義函數(shù)repl_slave_privREPLICATIONSLAVE允許讀取用戶維護、復制數(shù)據(jù)庫環(huán)境的二進制日志文件repl_client_privREPLICATIONCLIENT允許從服務器和主服務器的位置復制create_view_privCREATEVIEW允許創(chuàng)建視圖show_view_privSHOWVIEW允許查看視圖create_routine_privCREATEROUTINE允許創(chuàng)建存儲過程或自定義函數(shù)alter_routine_privALTERROUTINE允許修改存儲過程或自定義函數(shù)create_user_privCREATEUSER允許執(zhí)行CREATEUSER語句創(chuàng)建用戶eventprivCREATE/DROPEVENT允許創(chuàng)建、修改和刪除事件trigger_privCREATE/DROPTRIGGER允許創(chuàng)建和刪除觸發(fā)器任務1管理學生成績管理數(shù)據(jù)庫的用戶上述輸出結果表示,當前主機的root用戶具有SELECT、INSERT和UPDATE的權限。在上述的所有權限字段中,每一個權限以一個單獨的列指定,這些列全部是ENUM('Y',N')枚舉類型。如果不為其指定值,則使用默認值N?!纠}7.2】下面通過SELECT語句查看當前root用戶是否具有SELECT、INSERT和UPDATE的權限mysql>SELECTselect_priv,insert_priv,update_priv,user,hostFROMuser
->WHEREuser='root’ANDhost='localhost';任務1管理學生成績管理數(shù)據(jù)庫的用戶安全字段主要用來判斷用戶是否能夠成功登錄。user表中有ssl_type、ssl_cipher、x509_issuser和x509_subject這4個安全字段。其中ssl用于加密,x509標準可以用來表示用戶。通常標準的MySQL發(fā)行版本并不支持ssl功能,執(zhí)行SHOWVARIABLESLIKE‘have_openss1’語句可以查看MySQL是否具有該功能,具體語句如下。(3)安全字段have_openssl的值為DISABLED,表明該版本的MySQL不支持ssl加密功能。mysql>SHOWVARIABLESLIKE‘have_openss1’;任務1管理學生成績管理數(shù)據(jù)庫的用戶資源控制字段用來限制用戶使用的資源。user表中包含如下4個資源控制字段。①max_questions:表示用戶每小時允許執(zhí)行的查詢次數(shù)。②max_updates:表示每小時允許執(zhí)行多少次更新。③max_connections:表示每小時建立多少次連接。④max_user_connections:表示單個用戶可以同時具有的連接數(shù)。它們的默認值都是0,表示沒有限制。(4)資源控制字段任務1管理學生成績管理數(shù)據(jù)庫的用戶db表中存儲了用戶對某個數(shù)據(jù)庫的操作權限,db表的結構如表7-2所示。這里的權限適用于一個數(shù)據(jù)庫中的所有表。2.db表字段host、user、db為用戶字段,表示從某個主機連接某個用戶對某個數(shù)據(jù)庫的操作權限。db表中的權限字段和user表中的權限字段大致相同,只是user表中的權限是針對所有數(shù)據(jù)庫的,而db表中的權限只針對指定的數(shù)據(jù)庫。如果希望用戶只對某個數(shù)據(jù)庫有操作權限,可以先將user表中對應的權限設置為N,然后在db表中設置對應數(shù)據(jù)庫的操作權限為Y。任務1管理學生成績管理數(shù)據(jù)庫的用戶表7-2db表的結構字段名字段類型是否為空主鍵默認值字段說明hostCHAR(60)NOPRI主機名或IP地址dbCHAR(64)NOPRI數(shù)據(jù)庫名userCHAR(32)NOPRI用戶名select_privENUM('N','Y'")NON用于檢索數(shù)據(jù)insert_privENUM('N','Y')NON用于插人數(shù)據(jù)update_privENUM('N','Y')NON用于修改現(xiàn)有數(shù)據(jù)delete_privENUM('N','Y')NON用于刪除現(xiàn)有數(shù)據(jù)create_privENUM('N','Y')NON用于創(chuàng)建新的數(shù)據(jù)庫和表drop_privENUM('N','Y')NON用于刪除現(xiàn)有的數(shù)據(jù)庫和表grant_privENUM('N','Y')NON用于執(zhí)行大量的服務器管理操作references_privENUM('N','Y')NON用于目前并沒有多大的作用任務1管理學生成績管理數(shù)據(jù)庫的用戶表7-2db表的結構字段名字段類型是否為空主鍵默認值字段說明index_privENUM('N','Y')NON用于創(chuàng)建和刪除表的索引alter_privENUM('N','Y')NON用于重命名和修改表的結構create_tmp_table_privENUM('N','Y')NON用于創(chuàng)建臨時表lock_tables_privENUM('N','Y')NON用于鎖定表create_view_privENUM('N','Y')NON用于創(chuàng)建視圖show_view_privENUM('N','Y')NON用于查看視圖create_routine_privENUM('N','Y')NON用于創(chuàng)建存儲過程或自定義函數(shù)alter_routine_privENUM('N','Y')NON用于修改存儲過程或自定義函數(shù)execute_privENUM('N','Y')NON用于執(zhí)行存儲過程或自定義函數(shù)event_privENUM('N','Y')NON用于創(chuàng)建、修改和刪除事件trigger_privENUM('N','Y')NON用于創(chuàng)建和刪除觸發(fā)器任務1管理學生成績管理數(shù)據(jù)庫的用戶【例題7.3】使用SELECT語句查詢表db中的第一條記錄。mysql>SELECT*FROMmysql.dbLIMIT1\G;任務1管理學生成績管理數(shù)據(jù)庫的用戶tables_priv表用來對單個表進行權限設置,即用來指定表級權限。表tables_priv的結構如表7-3所示。
host、db、user和table_name字段為作用域列,依次表示主機名或IP地址、數(shù)據(jù)庫名、用戶名和表名。grantor字段表示權限是誰設置的;timestamp字段表示修改權限的時間;table_priv和column_priv字段為權限字段,前者表示對表進行操作的權限,后者表示對數(shù)據(jù)列進行操作的權限。3.tables_priv表任務1管理學生成績管理數(shù)據(jù)庫的用戶表7-3tables_priv表的結構字段名字段類型是否為空主鍵默認值字段說明hostCHAR(60)NOPRI主機名或IP地址dbCHAR(64)NOPRI數(shù)據(jù)庫名userCHAR(32)NOPRI用戶名table_nameCHAR(64)NOMUL表名grantorCHAR(93)NO表示修改記錄的用戶timestampTIMESTAMPNOCURRENT_TIMESTAMP表示修改記錄的時間table_privSET('SELECT','INSERT','UPDATE','DELETE','CREATE','DROP','GRANT','REFERENCES','INDEX','ALTER','CREATEVIEW','SHowVIEW','TRIGGER')NO表示對表的操作權限,包括SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、GRANT、REFERENCES、INDEX和ALTER等column_privSET('SELECT','INSERT','UPDATE','REFERENCES')NO表示對表中的列的操作權限,包括SELECT、INSERT、UPDATE和REFERENCES任務1管理學生成績管理數(shù)據(jù)庫的用戶columns_priv表用來對單個數(shù)據(jù)列進行權限設置,即用來指定數(shù)據(jù)列級的操作權限,columns_priv表的結構如表7-4所示。
host、db、user、table_name和column_priv字段為作用域列,依次表示主機名或IP地址、數(shù)據(jù)庫名、用戶名、表名和列名,表示可以對哪些數(shù)據(jù)列進行操作??蓪Ρ碇械臄?shù)據(jù)列進行操作權限的設置,這些權限包括INSERT、UPDATE、SELECT和REFERENCES。4.columns_priv表任務1管理學生成績管理數(shù)據(jù)庫的用戶表7-4columns_priv表的結構字段名字段類型是否為空默認值字段說明hostCHAR(60)NO無主機名或IP地址dbCHAR(64)NO無數(shù)據(jù)庫名userCHAR(32)NO無用戶名table_nameCHAR(64)NO無表名column_nameCHAR(64)NO無表示數(shù)據(jù)列名稱,用來指定對哪些數(shù)據(jù)列具有操作權限timestampTIMESTAMPNOCURRENT_TIMESTAMP表示修改記錄的時間column_privSET('SELECT','INSERT','UPDATE','REFERENCES')NO無表示對表中的列的操作權限,包括SELECT、INSERT、UPDATE和REFERENCES任務1管理學生成績管理數(shù)據(jù)庫的用戶procs_priv表可以對存儲過程和存儲函數(shù)進行權限設置,procs_priv的表結構如表7-5所示。5.procs_priv表字段名字段類型是否為空默認值字段說明hostCHAR(60)NO無主機名dbCHAR(64)NO無數(shù)據(jù)庫名userCHAR(32)NO無用戶名routine_nameCHAR(64)NO無表示存儲過程或函數(shù)的名稱routine_typeENUM('FUNCTION','PROCEDURE')NO無表示存儲過程或函數(shù)的類型。routine_type字段有兩個值,分別是FUNCTION和PROCEDURE。FUNCTION表示函數(shù);PROCEDURE表示存儲過程grantorCHAR(93)NO無表示插入或修改記錄的用戶proc_privSET('EXECUTE','ALTERROUTINE','GRANT')NO無表示擁有的權限,包括EXECUTE、ALTERROUTINE、GRANT3種timestampTIMESTAMPNOCURRENT_TIMESTAMP表示記錄更新的時間表7-5procs_priv表的結構任務1管理學生成績管理數(shù)據(jù)庫的用戶7.1.2了解MySQL的訪問控制過程1.連接核實階段當用戶連接MySQL服務器時,服務器基于用戶的賬號和密碼來進行身份驗證。即將用戶連接請求中提供的用戶名、主機地址和密碼與權限表user中保存的user、host、authentication_string字段值進行匹配,如果這3個字段同時匹配成功,MySQL服務器接受連接請求,然后進入請求核實階段;否則,服務器拒絕訪問。2.請求核實階段建立連接之后,服務器對于用戶的每個操作請求,都要檢查用戶是否有足夠的權限來執(zhí)行。用戶已經(jīng)被授予的權限分別保存在user、db、host、tables_priv、columns_priv或procs_priv表中。請求核實的過程如下。任務1管理學生成績管理數(shù)據(jù)庫的用戶(1)用戶向MySQL發(fā)出操作請求。(2)MySQL檢查user權限表中的權限信息,匹配user、host字段值,查看請求的全局權限是否被允許,如果找到匹配結果,操作允許執(zhí)行,否則MySQL繼續(xù)向下查找。(3)MySQL檢查db權限表中的權限信息,匹配user、host、db字段值,查看請求的數(shù)據(jù)庫級別的權限是否被允許,如果找到匹配結果,操作允許執(zhí)行,否則MySQL繼續(xù)向下查找。(4)MySQL檢查tables_priv權限表中的信息,匹配user、host、db、table_name字段值,查看請求的數(shù)據(jù)庫級別的權限是否被允許,如果找到匹配結果,操作允許執(zhí)行,否則MySQL繼續(xù)向下查找。(5)MySQL檢查columns_priv權限表中的信息,匹配user、host、db、table_name、column_name字段值,查看請求的數(shù)據(jù)庫級別的權限是否被允許,如果找到匹配結果,操作允許執(zhí)行,否則MySQL返回錯誤信息,用戶請求的操作不能執(zhí)行,操作失敗。任務1管理學生成績管理數(shù)據(jù)庫的用戶7.1.3用命令方式創(chuàng)建和管理用戶創(chuàng)建用戶是指添加普通用戶,創(chuàng)建用戶有3種方式:通過CREATEUSER語句創(chuàng)建;通過INSERT語句創(chuàng)建;通過GRANT語句創(chuàng)建。(1)用CREATEUSER語句創(chuàng)建用戶CREATEUSER語句用于創(chuàng)建新的MySQL用戶,即在mysql.user表中創(chuàng)建-條新記錄如果創(chuàng)建的用戶已經(jīng)存在,則出現(xiàn)錯誤。CREATEUSER語句的基本語法格式如下。1.創(chuàng)建用戶CREATEUSERuser[IDENTIFIEDBY[PASSWORD]'password'][,user[IDENTIFIEDBY[PASSWORD]'password']]…任務1管理學生成績管理數(shù)據(jù)庫的用戶【例題7.4】使用CREATEUSER語句為學生成績管理數(shù)據(jù)庫cjgl創(chuàng)建名為teacher111的用戶,指定主機名是localhost、密碼為teacher123。mysql>usecijlmysql->CREATEUSER'teacher111'@'localhost'IDENTIFIEDBY'teacher123';創(chuàng)建完成后可以通過SELECT語句查詢user表中的記錄,并且指定查詢的條件,執(zhí)行的語句如下。
mysql>SELECTuser,hostFROMmysql.userWHEREuser='teacher111';新創(chuàng)建的用戶擁有的權限很少,它們只能執(zhí)行不需要權限的操作。如登錄MySQL、使用SHOW語句查詢所有存儲引擎和字符集的列表等。任務1管理學生成績管理數(shù)據(jù)庫的用戶【例題7.5】使用CREATEUSER語句為學生成績管理數(shù)據(jù)庫cjgl一次性創(chuàng)建名稱為student1、student2和student3的用戶,密碼與用戶名一致,主機名都是localhost。(2)用INSERT語句創(chuàng)建用戶。還可以直接用INSERT語句向mysql.user表中添加用戶信息來創(chuàng)建用戶,但用戶必須擁有對user表的INSERT權限。使用INSERT語句向user表中添加host、user和authentication_string字段的值時,其他未指定的字段一般會使用默認值,但ssl_cipher、x509_issuer和x509_subject字段并沒有默認值,因此要為它們指定初始值(如空值),否則直接執(zhí)行INSERT語句會提示出錯。Mysql->CREATEUSER'student1'@'localhost'IDENTIFIEDBY'student1',->'student2'@'localhost'IDENTIFIEDBY'student2',->'student3'@'localhost'IDENTIFIEDBY'student3';任務1管理學生成績管理數(shù)據(jù)庫的用戶【例題7.6】使用INSERT語句為學生成績管理數(shù)據(jù)庫cjgl創(chuàng)建名稱是student4的用戶,指定主機名是localhost、密碼是student4。執(zhí)行完INSERT語句后用戶新建成功。但此時通過該賬戶登錄MySQL服務器并不會成功,因為新用戶還沒有生效。重啟MySQL服務器或者執(zhí)行FLUSHPRIVILEGES語句可以使新用戶生效,如下所示,該語句可以從user表中重新載入權限。mysql>INSERTINTOmysql.user(host,user,authentication_string,ss1_cipher,x509_issuer,x509_subject)VALUES('localhost','student4',PASSWORD('student4'),'','','');mysql>FLUSHPRIVILEGES;任務1管理學生成績管理數(shù)據(jù)庫的用戶在MySQL中,可以通過多種方式修改用戶名和密碼。(1)使用RENAMEUSER語句修改用戶名。在MySQL中,可以使用RENAMEUSER語句修改一個或多個已經(jīng)存在的用戶名。其語法格式如下。RENAMEUSERold_userTOnew_user需要注意的是,如果系統(tǒng)中舊賬戶不存在或者新賬戶已存在,執(zhí)行該語句會出現(xiàn)錯誤。使用RENAMEUSER語句,必須擁有mysql數(shù)據(jù)庫的UPDATE權限或全局CREATEUSER權限。2.
修改用戶任務1管理學生成績管理數(shù)據(jù)庫的用戶【例題7.7】使用RENAMEUSER語句將學生成績管理數(shù)據(jù)庫cjgl中名為student1的用戶改名為student??梢允褂胹tudent用戶登錄數(shù)據(jù)庫服務器,執(zhí)行如下語句。C:\Users\Admin>mysql-hlocalhost-ustudent-p(2)使用SET語句修改密碼。在使用root用戶登錄到MySQL服務器時,還可以直接使用SET語句修改密碼。SET語句的基本語法格式如下。SETPASSWORDFORusername@localhost=PASSWORD('new_password');其中,username表示要修改密碼的用戶名,new_password表示新密碼。如果更改用戶自身的密碼,可直接使用以下語句。SETPASSWORD=PASSWORD("new_password");mysql>RENAMEUSER'student1'@'localhost'TO'student'@'localhost';mysql>FLUSHPRIVILEGES;任務1管理學生成績管理數(shù)據(jù)庫的用戶【例題7.8】以root用戶的身份登錄MySQL服務器,然后使用SET語句將root用戶的密碼更改為root。(3)使用mysqladmin語句修改密碼。root用戶可以修改自己的密碼和普通用戶的密碼;普通用戶可以修改自己的密碼。mysqladmin是MySQL服務器的管理工具,使用mysqladmin語句既可以修改root用戶的密碼,也可以修改普通用戶的密碼。其基本語法格式如下。mysqladmin-uusername-ppassword'new_password';mysql>SETPASSWORDFORroot@localhost=PASSWORD(‘root’);任務1管理學生成績管理數(shù)據(jù)庫的用戶【例題7.9】使用mysqladmin命令將root用戶的密碼更改回mysql。執(zhí)行該語句時系統(tǒng)要求輸入原密碼,修改完畢后系統(tǒng)會發(fā)出警告信息。C:\Users\Admin>mysqladmin-uroot-ppassword'mysql'Enterpassword:********mysqladmin:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure.Warning:Sincepasswordwillbesenttoserverinplaintext,usesslconnectiontoensurepasswordsafety.任務1管理學生成績管理數(shù)據(jù)庫的用戶【例題7.10】使用mysqladmin語句將學生成績管理數(shù)據(jù)庫cjgl中名為student的用戶的原密碼student1修改為student。(4)使用UPDATE語句修改密碼。在以root用戶身份登錄到MySQL數(shù)據(jù)庫時,可以使用UPDATE語句更改mysql.user表的authentication_string字段值來修改密碼。UPDATE語句修改密碼的語法格式如下。C:\Users\Admin>mysqladmin-ustudent-ppassword‘student’UPDATEuserSETpassword=PASSWORD("new_password")WHEREuser='username'ANDhost='hostname';任務1管理學生成績管理數(shù)據(jù)庫的用戶【例題7.11】使用UPDATE語句更改用戶student2的密碼,指定新的密碼是student。密碼修改完畢后執(zhí)行FLUSHPRIVILEGES語句刷新權限,如下所示。再次使用student2用戶身份登錄時需要使用新的密碼。mysql>UPDATEmysql.userSETpassword=PASSWORD("student")WHEREuser="student4"ANDhost="localhost";mysql>FLUSHPRIVILEGES;任務1管理學生成績管理數(shù)據(jù)庫的用戶在MySQL數(shù)據(jù)庫中,可以使用DROPUSER語句刪除用戶,也可以直接在mysql.user表中刪除用戶及其相關權限。(1)用DROPUSER語句刪除用戶。使用DROPUSER語句刪除用戶以及權限信息時必須擁有DROP權限。該語句的語法格式如下。3.
刪除用戶DROPUSERuser[,user]任務1管理學生成績管理數(shù)據(jù)庫的用戶【例題7.12】使用DROPUSER語句刪除學生成績管理數(shù)據(jù)庫cjgl中名為student3、student4的用戶,其主機名都是localhost。(2)用DELETE語句刪除用戶。使用DELETE語句刪除用戶時必須擁有對mysql.user表的DELETE權限,使用該語句可直接將用戶的信息從user表中刪除。該語句的基本語法格式如下。mysql>DROPUSER'student3'@'localhost','student4'@'localhost';DELETEFROMuserWHEREhost='localhost'ANDuser='username';任務1管理學生成績管理數(shù)據(jù)庫的用戶【例題7.13】使用DELETE語句刪除學生成績管理數(shù)據(jù)庫中名為student2的用戶,其主機名是localhost。執(zhí)行完上述語句后還要使用FLUSHPRIVILEGES語句來使刪除用戶生效,如下所示。mysql>DELETEFROMmysql.userWHEREHost=’localhost’ANDUser=’student2’;mysql>FLUSHPRIVILEGES任務1管理學生成績管理數(shù)據(jù)庫的用戶7.1.4用MySQLWorkbench圖形化工具創(chuàng)建和管理用戶使用MySQLWorkbench圖形化工具可以創(chuàng)建、修改和刪除用戶賬號,編輯配置文件等?!纠}7.14】使用MySQLWorkbench圖形化工具為學生成績管理數(shù)據(jù)庫cjgl創(chuàng)建名為teacher的用戶,密碼為teacher123,然后修改密碼為teacher111,最后刪除teacher用戶。
(1)打開MySQLWorkbench圖形化工具,登錄MySQL服務器,在導航窗格單擊MANAGEMENT欄的UsersandPrivileges,打開圖7-3所示的用戶和權限的管理界面,其中會顯示當前MySQL服務器中的所有用戶。任務1管理學生成績管理數(shù)據(jù)庫的用戶
(2)單擊AddAccount按鈕彈出創(chuàng)建用戶窗口,在Login選項卡中設置用戶名為teacher、認證類型為Standard、主機名為%、密碼為teacher123,單擊Apply按鈕,此時在窗口左側可見剛剛創(chuàng)建的teacher用戶,如圖7-4所示。任務1管理學生成績管理數(shù)據(jù)庫的用戶(4)不再需要的用戶可以直接刪除。如要刪除teacher用戶,只需在用戶列表中選中teacher用戶,單擊下方的Delete按鈕,確認刪除即可。單擊Refresh按鈕可刷新用戶列表。(3)在窗口左側的用戶列表中,選擇用戶teacher,可查看該用戶的用戶名、認證類型、主機名稱、用戶密碼等信息。而且可以對該用戶信息進行修改,如將其密碼修改為teacher111,然后單擊Apply按鈕。任務2管理學生成績管理數(shù)據(jù)庫用戶的權限7.2.1用命令方式管理權限授予權限也稱分配權限,是指為某個用戶賦予某些權限。例如,可以為新建的用戶賦予查詢所有數(shù)據(jù)庫和表的權限。在MySQL數(shù)據(jù)庫中可以使用以下兩種方法給用戶授予權限。(1)直接操作MySQL的權限表來給用戶授予權限。如在使用INSERT語句向mysql.user表中插入用戶數(shù)據(jù)時直接為權限字段賦值。(2)使用GRANT語句給用戶授予權限。GRANT語句的主要用途是給用戶授權,可以使用它在創(chuàng)建新用戶的同時進行授權。GRANT語句的基本語法格式如下。1.
授予權限GRANTpriv_type[(column_list)]ONdatabase.tableTOuser[IDENTIFIEDBY[PASSWORD]'password'][,user[IDENTIFIEDBY[PASSWORD]'password']]…[WITH{GRANTOPTION|resource_option}...【例題7.15】使用GRANT語句為學生成績管理數(shù)據(jù)庫cjgl創(chuàng)建名為student5的用戶,指定主機名為localhost、密碼為student5,該用戶對所有數(shù)據(jù)庫的所有表都擁有SELECT的權限??梢酝ㄟ^SELECT語句查看該用戶的權限信息,執(zhí)行如下語句。任務2管理學生成績管理數(shù)據(jù)庫用戶的權限GRANTSELECTON*.*TO'student5'@'localhost'IDENTIFIEDBY'student5';mysql>SELECT*FROMmysql.userWHEREuser='student5'\G;【例題7.16】使用GRANT語句給學生成績管理數(shù)據(jù)庫cjgl的student用戶授予對所有數(shù)據(jù)庫中所有表的SELECT、INSERT和UPDATE的權限,允許該用戶將這些權限賦予別的用戶??梢允褂肧ELECT語句查詢mysql.user表,并且查看student用戶的信息,執(zhí)行如下語句。任務2管理學生成績管理數(shù)據(jù)庫用戶的權限mysql>GRANTSELECT,INSERT,UPDATEON*.*TO'student'@'localhost'IDENTIFIEDBY'student'WITHGRANTOPTION;mysql>SELECThost,user,authentication_string,select_priv,Insert_priv,update_priv,delete_privFROMmysql.userWHEREuser='student'ANDhost='localhost'\G;任務2管理學生成績管理數(shù)據(jù)庫用戶的權限在MySQL數(shù)據(jù)庫中查看用戶的權限有以下兩種方法。(1)使用SELECT語句查看權限。通過SELECT語句查看mysql.user權限表中的記錄,可以查看所有用戶的權限。這種方式非常簡單,但必須擁有對mysql.user表的查詢權限。2.
查看權限(2)使用SHOWGRANTS語句查看權限。SELECT*FROMmysql.user;SHOWGRANTSFOR‘username’@’hostname’;【例題7.17】使用SHOWGRANTS語句查看root用戶的權限。任務2管理學生成績管理數(shù)據(jù)庫用戶的權限mysql>SHOWGRANTSFOR‘root’@’localhost’\G;任務2管理學生成績管理數(shù)據(jù)庫用戶的權限收回權限也稱取消權限,是指取消某個用戶的某些權限。數(shù)據(jù)庫管理員給普通用戶授權時一定要特別小心,如果授權不當,可能會給數(shù)據(jù)庫帶來嚴重的后果。如果發(fā)現(xiàn)授予用戶的權限太多,應該盡快將權限收回。在MySQL中可以使用REVOKE語句實現(xiàn)取消權限的功能。REVOKE語句的基本語法格式如下。3.
收回權限REVOKE語句的語法與GRANT語句非常相似,參數(shù)的意義也相同。使用REVOKE語句可以同時取消多個用戶的權限,每個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 修路追加款合同標準文本
- 內抹灰合同標準文本
- 公寓出售標準合同標準文本
- 2025建筑工程掛靠承包合同
- 影視文化項目的投資與造價咨詢合同
- 舊家具捐贈合同
- 市場營銷中的品牌定位與傳播策略
- 健康管理的預防措施培訓
- 浙江省建設投資集團真題2024
- 新疆第五師雙河市特崗教師招聘真題2024
- GB/T 10458-2008蕎麥
- 【滬教版】五年級上冊數(shù)學第四單元測試卷
- 教學第七講-犯罪的故意和過失課件
- 《鄭和下西洋》-完整版課件
- 換料的記錄表
- 國學智慧爾雅課期末考試題庫答案2022
- 三級醫(yī)院醫(yī)療服務能力標準(綜合醫(yī)院)
- DB11-T 1834-2021城市道路工程施工技術規(guī)程
- 配電網(wǎng)工程典型問題及解析(第三部分)課件(PPT 49頁)
- 彩鋼棚專項施工措施方案
- DB11_T1945-2021 屋面防水技術標準(高清最新版)
評論
0/150
提交評論