




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、17MySQL的權(quán)限與安全第章第1頁,共35頁。17.1MySQL權(quán)限表第2頁,共35頁。MySQL的存取控制過程是:首先服務(wù)器檢查用戶是否允許連接,假定用戶能連接,服務(wù)器檢查用戶發(fā)出的每個(gè)請求,看其是否有足夠的權(quán)限實(shí)施它。例如,如果用戶從數(shù)據(jù)庫中的一個(gè)表查找某行或從數(shù)據(jù)庫中刪除一個(gè)表,服務(wù)器會(huì)確定用戶對表有SELECT權(quán)限或?qū)?shù)據(jù)庫有DROP權(quán)限。17.1.1 MySQL權(quán)限系統(tǒng)的工作原理服務(wù)器在存取控制過程中使用MySQL數(shù)據(jù)庫中的權(quán)限表進(jìn)行權(quán)限判斷。MySQL 5.7中存在4個(gè)控制權(quán)限的表,分別為user表,db表,tables_priv表和columns_priv表。這些表位于系統(tǒng)數(shù)據(jù)
2、庫mysql中。MySQL權(quán)限表的驗(yàn)證過程為:1)先通過user表中的host和user兩個(gè)字段判斷連接的IP和用戶名是否存在,存在則通過驗(yàn)證。對于身份認(rèn)證,MySQL是通過IP地址和用戶名聯(lián)合進(jìn)行確認(rèn)。例如,MySQL安裝后默認(rèn)創(chuàng)建的用戶rootlocalhost表示用戶root只能從本地(localhost)進(jìn)行連接才可以通過認(rèn)證,從其他任何主機(jī)對數(shù)據(jù)庫進(jìn)行的連接都將被拒絕。就是說,同一個(gè)用戶,如果來自不同的IP地址,則MySQL將其視為不同的用戶。2)通過身份認(rèn)證后,進(jìn)行權(quán)限分配,按照user,db,tables_priv,columns_priv的順序進(jìn)行驗(yàn)證。即先檢查全局權(quán)限表use
3、r,如果user中對應(yīng)的權(quán)限為Y,則此用戶對所有數(shù)據(jù)庫的權(quán)限都為Y,將不再檢查db,tables_priv和columns_priv;如果為N,則到db表中檢查此用戶對應(yīng)的具體數(shù)據(jù)庫,并得到db中為Y的權(quán)限;如果db中為N,則檢查tables_priv中此數(shù)據(jù)庫對應(yīng)的具體表,取得表中為Y的權(quán)限,依此類推。第3頁,共35頁。17.1.1 MySQL權(quán)限系統(tǒng)的工作原理【實(shí)例17-1】執(zhí)行SQL語句,查看user表中的用戶信息。打開命令窗口,登錄MySQL并選擇數(shù)據(jù)庫mysql,執(zhí)行SQL語句查看user表中的用戶信息。SQL語句及其執(zhí)行結(jié)果如下:mysql USE mysql;Database c
4、hangedmysql SELECT user,host FROM userG* 1. row *user: mysql.syshost: localhost* 2. row *user: roothost: localhost2 rows in set (0.00 sec)第4頁,共35頁。在權(quán)限存取的過程中,系統(tǒng)最常用到的是系統(tǒng)數(shù)據(jù)庫mysql中的user表和db表,user表用于存放用戶賬號信息以及全局級別(所有數(shù)據(jù)庫)權(quán)限。db表用于存放數(shù)據(jù)庫級別的權(quán)限。17.1.2 權(quán)限表表17-1 user表和db表的定義 表 名userdb用戶列host(主機(jī)名)hostuser(用戶名)dbu
5、ser權(quán)限列select_priv(選擇數(shù)據(jù))select_privinsert_priv(插入數(shù)據(jù))insert_privupdate_priv(更新數(shù)據(jù))update_privdelete_priv(刪除數(shù)據(jù))delete_privcreate_priv(創(chuàng)建新的數(shù)據(jù)庫和表)create_privdrop_priv(刪除現(xiàn)有數(shù)據(jù)庫和表)drop_privreload_priv(重新加載MySQL所用各種內(nèi)部緩存)shutdown_priv(關(guān)閉MySQL服務(wù)器)process_priv(查看用戶進(jìn)程)file_priv(讀寫文件)grant_priv(將自身權(quán)限授予其他用戶)grant_p
6、rivreferences_priv(某些未來功能的占位符)references_privindex_priv(創(chuàng)建和刪除表索引)index_privalter_priv(重命名和修改表結(jié)構(gòu))alter_priv第5頁,共35頁。17.1.2 權(quán)限表表17-1(續(xù)) 表 名userdb權(quán)限列show_db_priv(查看服務(wù)器上所有數(shù)據(jù)庫名字)super_priv(執(zhí)行某些強(qiáng)大的管理功能)create_tmp_table_priv(創(chuàng)建臨時(shí)表)create_tmp_table_privlock_tables_priv(阻止對表的訪問/修改)lock_tables_privexecute_pri
7、v(執(zhí)行存儲(chǔ)過程)execute_privrepl_slave_priv(讀取用于維護(hù)復(fù)制數(shù)據(jù)庫環(huán)境的日志文件)repl_client_priv(確定復(fù)制從服務(wù)器和主服務(wù)器的位置)create_view_priv(確定用戶是否可以創(chuàng)建視圖)create_view_privshow_view_priv(查看視圖或了解視圖如何執(zhí)行)show_view_privcreate_routine_priv(更改或放棄存儲(chǔ)過程和函數(shù))create_routine_privalter_routine_priv(修改或刪除存儲(chǔ)函數(shù)及函數(shù))alter_routine_privcreate_user_priv(是否
8、可以執(zhí)行CREATE USER命令)event_priv(能否創(chuàng)建、修改和刪除事件)event_privtrigger_priv(能否創(chuàng)建和刪除觸發(fā)器)trigger_privcreate_tablespace_priv(能否創(chuàng)建表空間)安全列ssl_typessl_cipherx509_issuer第6頁,共35頁。17.1.2 權(quán)限表表17-1(續(xù))表 名userdb安全列x509_subjectpluginauthentication_string(賬號密碼)資源控制列max_questions(用戶每小時(shí)允許執(zhí)行的查詢操作次數(shù))max_updates(用戶每小時(shí)允許執(zhí)行的更新操作次數(shù))
9、max_connections(用戶每小時(shí)允許執(zhí)行的連接操作次數(shù))max_user_connections(用戶允許同時(shí)建立的連接次數(shù))MySQL 5.7新增列password_expired(密碼自動(dòng)失效)password_last_changed(密碼最后一次修改時(shí)間)password_lifetime(密碼自動(dòng)失效時(shí)間)account_locked(用戶賬號鎖定) 知識庫如要查看user表中的字段,可以像查看普通表那樣使用SELECT語句:SELECT * FROM mysql.user WHERE user=root AND host=localhost G;第7頁,共35頁。user
10、表是MySQL中最重要的權(quán)限表,用于記錄允許連接到服務(wù)器的賬號信息。其中的權(quán)限是全局級的,如果用戶在該表中被授予了DELETE權(quán)限,則該用戶可以刪除MySQL服務(wù)器上所有數(shù)據(jù)庫中的任何記錄。17.1.2 權(quán)限表user表中的列可以分為4部分:用戶列、權(quán)限列、安全列和資源控制列,通常使用最多的是用戶列和權(quán)限列。用戶列1用戶列包括host和user,表示主機(jī)名和用戶名,并且這兩個(gè)字段是表的聯(lián)合主鍵。在用戶與服務(wù)器建立連接時(shí),輸入的主機(jī)名和用戶名必須匹配user表中對應(yīng)的字段,只有2個(gè)值都匹配才允許建立連接。權(quán)限列2權(quán)限列的字段決定了用戶的權(quán)限,描述了在全局范圍內(nèi)允許對數(shù)據(jù)庫進(jìn)行的操作。包括查詢和修
11、改等用于數(shù)據(jù)庫操作的普通權(quán)限,也包括關(guān)閉服務(wù)器和加載用戶等管理權(quán)限。這些字段值的類型為ENUM,可取值為Y和N,Y表示用戶有對應(yīng)的權(quán)限;N表示用戶沒有對應(yīng)的權(quán)限。權(quán)限列中所有字段的值默認(rèn)都為N,如果要修改權(quán)限,可以使用GRANT語句或UPDATE語句修改user表中相應(yīng)字段的值。第8頁,共35頁。17.1.2 權(quán)限表安全列3安全列有6個(gè)字段,其中兩個(gè)是ssl相關(guān)的,兩個(gè)是x509相關(guān)的。ssl用于加密,x509標(biāo)準(zhǔn)用于標(biāo)注用戶,plugin字段標(biāo)識用于驗(yàn)證用戶身份。如果該字段為空,服務(wù)器使用內(nèi)建授權(quán)驗(yàn)證機(jī)制驗(yàn)證用戶身份。authentication_string字段為5.7版本中新增的用于代替
12、password,表示密碼的字段。資源控制列4資源控制列的字段用于限制用戶使用的資源,包括以max開頭的4個(gè)字段。如果1小時(shí)內(nèi)用戶查詢或連接數(shù)量超過資源控制限制,該用戶將被鎖定,直到1小時(shí)后才可以再次執(zhí)行相應(yīng)操作。 知識庫除上述4種類型的字段外,MySQL 5.7還新增了4個(gè)字段,分別用于控制密碼失效、最后一次修改時(shí)間、失效時(shí)間,及賬號鎖定。第9頁,共35頁。17.2賬號管理第10頁,共35頁。在MySQL中,必須要有相應(yīng)的權(quán)限來執(zhí)行創(chuàng)建賬號的操作。常用創(chuàng)建賬號的方式有兩種:一種是使用GRANT語句;另一種是使用CREATE USER語句。一般推薦使用GRANT語句,因?yàn)椴僮骱唵危鲥e(cuò)幾率少。
13、MySQL提供許多命令用于管理用戶賬號,這些命令可用于管理包括登錄和退出MySQL服務(wù)器、創(chuàng)建和刪除用戶、密碼和權(quán)限管理等內(nèi)容。MySQL數(shù)據(jù)庫的安全性需要通過賬號管理來保證。17.2.1 創(chuàng)建賬號GRANT priv_type ,priv_type. ON db.tableTO userhost IDENTIFIED BY password , user IDENTIFIED BY passwordWITH with_option with_option.;使用GRANT語句創(chuàng)建新用戶1使用GRANT語句不僅可以創(chuàng)建新用戶,還可以在創(chuàng)建的同時(shí)對用戶授權(quán)。另外,使用GRANT語句還可以指定賬號
14、的其他特點(diǎn),如使用安全連接、限制使用服務(wù)器資源等。需要注意的是,使用GRANT語句創(chuàng)建新用戶時(shí)必須有GRANT權(quán)限。 知識庫如果只指定用戶名部分user,不指定主機(jī)名,則主機(jī)名部分默認(rèn)為%,表示對所有主機(jī)開放權(quán)限;如果指定用戶登錄不需要密碼,可以省略IDENTIFIED BY部分。第11頁,共35頁。17.2.1 創(chuàng)建賬號【實(shí)例17-2】使用GRANT語句創(chuàng)建一個(gè)新用戶lucy,密碼為lucy123,并授予用戶對所有數(shù)據(jù)庫的SELECT和UPDATE權(quán)限。GRANT語句及其執(zhí)行結(jié)果如下:mysql GRANT SELECT,UPDATE ON *.* TO lucylocalhost IDEN
15、TIFIED BY lucy123;Query OK, 0 rows affected, 1 warning (0.07 sec)顯示執(zhí)行成功,使用SELECT語句查詢用戶lucy的權(quán)限:mysql SELECT host,user,select_priv,update_priv FROM mysql.user WHERE user=lucy;+-+-+-+-+| host| user| select_priv| update_priv |+-+-+-+-+| localhost| lucy| Y | Y |+-+-+-+-+1 row in set (0.00 sec) 提示user表中的u
16、ser和host字段區(qū)分大小寫,在查詢時(shí)要指定正確的用戶名和主機(jī)名。第12頁,共35頁。17.2.1 創(chuàng)建賬號CREATE USER userhost IDENTIFIED BY password;使用CREATE USER語句創(chuàng)建新用戶2要使用CREATE USER語句創(chuàng)建用戶,必須有全局的CREATE USER權(quán)限,或MySQL數(shù)據(jù)庫的INSERT權(quán)限。每添加一個(gè)用戶,CREATE USER語句會(huì)在mysql.user表中添加一條新記錄。CREATE USER語句的基本語法格式如下:使用CREATE USER語句創(chuàng)建的用戶沒有任何權(quán)限,還需要使用GRANT語句賦予其權(quán)限?!緦?shí)例17-3】使
17、用CREATE USER語句創(chuàng)建一個(gè)新用戶lily,主機(jī)名為localhost,密碼為lily123。CREATE USER語句及其執(zhí)行結(jié)果如下:mysql CREATE USER lilylocalhost IDENTIFIED BY lily123;Query OK, 0 rows affected (0.02 sec)第13頁,共35頁。17.2.1 創(chuàng)建賬號顯示執(zhí)行成功,使用SELECT語句查詢用戶lily的權(quán)限:mysqlSELECT host,user,select_priv,update_priv FROM mysql.user WHERE user=lily;+-+-+-+-+
18、| host | user| select_priv| update_priv|+-+-+-+-+| localhost| lily| N | N |+-+-+-+-+1 row in set (0.00 sec)第14頁,共35頁。要使用該語句,必須擁有MySQL數(shù)據(jù)庫的全局CREATE USER權(quán)限或DELETE權(quán)限。在MySQL中,可以使用DROP USER語句刪除用戶。其基本語法格式如下:17.2.2 刪除賬號DROP USER userhost ,userhost;【實(shí)例17-4】使用DROP USER語句刪除用戶名為lily,主機(jī)名為localhost的用戶。DROP USER語句
19、及其執(zhí)行結(jié)果如下:mysql DROP user lilylocalhost;Query OK, 0 rows affected (0.03 sec)可以看到語句執(zhí)行成功,使用SELECT語句查看執(zhí)行結(jié)果:mysql SELECT host,user FROM mysql.user;+-+-+| host | user |+-+-+| localhost| lucy | localhost| mysql.sys| localhost| root |+-+-+3 rows in set (0.00 sec)第15頁,共35頁。由于所有賬號信息都保存在user表中,因此可以通過修改user表中的密
20、碼字段值來改變r(jià)oot用戶的密碼。使用root用戶登錄MySQL服務(wù)器后,可以執(zhí)行以下UPDATE語句修改其登錄密碼:由于root用戶擁有很高的權(quán)限,其安全對于保證MySQL的安全非常重要。17.2.3 root用戶修改自身密碼UPDATE mysql.user SET authentication_string=PASSWORD(newpwd) WHERE user=root AND host=localhost;修改MySQL數(shù)據(jù)庫的user表1執(zhí)行該語句后,還要執(zhí)行FLUSH PRIVILEGES;語句重新加載用戶權(quán)限。第16頁,共35頁。17.2.3 root用戶修改自身密碼執(zhí)行FLU
21、SH PRIVILEGES;語句,重新加載用戶權(quán)限。mysql FLUSH PRIVILEGES;Query OK, 0 rows affected (0.11 sec)【實(shí)例17-5】使用UPDATE語句將root用戶的密碼修改為root123。UPDATE語句及其執(zhí)行結(jié)果如下:mysqlUPDATE mysql.user SET authentication_string=PASSWORD(root123) WHERE user=root AND host=localhost;Query OK, 1 row affected, 1 warning (0.06 sec)Rows matche
22、d: 1 Changed: 1 Warnings: 1執(zhí)行完UPDATE語句后,root用戶密碼被成功修改。使用FLUSH PRIVILEGES;語句重新加載用戶權(quán)限后,就可以使用新密碼登錄MySQL了。 提示在之前的版本中,密碼字段的字段名是password,5.7版本改為了authentication_string。第17頁,共35頁。使用mysqladmin命令修改root用戶密碼的基本語法形式如下:17.2.3 root用戶修改自身密碼mysqladmin -u username -h localhost -p password newpwd使用mysqladmin命令修改密碼2【實(shí)例
23、17-6】使用mysqladmin命令將root用戶的密碼修改為123456。mysqladmin命令及其執(zhí)行結(jié)果如下:C:Usersccymysqladmin -u root -h localhost -p password 123456Enter password: *按照要求輸入root用戶原來的密碼,執(zhí)行完畢后,新密碼即被設(shè)定完成。下次登錄MySQL就要使用新密碼了。第18頁,共35頁。使用SET語句可以重新設(shè)置自身或其他用戶的登錄密碼。修改自身登錄密碼的語法結(jié)構(gòu)如下:17.2.3 root用戶修改自身密碼SET PASSWORD=PASSWORD(newpwd);使用SET語句修改r
24、oot用戶密碼3【實(shí)例17-7】使用SET語句將root用戶的密碼修改為root123。使用root用戶登錄MySQL服務(wù)器后,執(zhí)行SET語句,結(jié)果如下:mysql SET PASSWORD=PASSWORD(root123);Query OK, 0 rows affected, 1 warning (0.04 sec)SET語句執(zhí)行成功后,為使設(shè)置生效,需要重啟MySQL或執(zhí)行FLUSH PRIVILEGES;語句刷新權(quán)限,重新加載權(quán)限表。執(zhí)行結(jié)果如下:mysql FLUSH PRIVILEGES;Query OK, 0 rows affected (0.04 sec)第19頁,共35頁。使
25、用SET語句修改普通用戶密碼的語法格式如下:使用root用戶不僅可以修改自身密碼,還可以修改普通用戶的密碼。17.2.4 root用戶修改普通用戶密碼SET PASSWORD FOR userhost = PASSWORD(newpwd);使用SET語句修改普通用戶密碼1如果是普通用戶修改自身密碼,則可以省略FOR子句:SET PASSWORD = PASSWORD(newpwd);【實(shí)例17-8】使用SET語句將lucy用戶的密碼修改為123456。使用root用戶登錄MySQL服務(wù)器后,執(zhí)行SET語句,結(jié)果如下:mysql SET PASSWORD FOR lucylocalhost =
26、PASSWORD(123456);Query OK, 0 rows affected, 1 warning (0.02 sec)第20頁,共35頁。在使用root用戶登錄MySQL服務(wù)器后,可以通過執(zhí)行UPDATE語句修改mysql數(shù)據(jù)庫中user表的authentication_string字段值,來修改普通用戶的密碼。17.2.4 root用戶修改普通用戶密碼UPDATE mysql.user SET authentication_string=PASSWORD(newpwd)WHERE user=username AND host=hostname;使用UPDATE語句修改普通用戶密碼2
27、執(zhí)行該語句后,需要執(zhí)行FLUSH PRIVILEGES;語句刷新權(quán)限,重新加載權(quán)限表?!緦?shí)例17-9】使用UPDATE語句將lucy用戶的密碼修改為lucy123456。使用root用戶登錄MySQL服務(wù)器后,執(zhí)行UPDATE語句,結(jié)果如下:mysql UPDATE mysql.user SET authentication_string=PASSWORD(lucy123456) WHERE user=lucy AND host=localhost;Query OK, 1 row affected, 1 warning (0.07 sec)Rows matched: 1 Changed: 1
28、Warnings: 1UPDATE語句執(zhí)行成功后,需要執(zhí)行FLUSH PRIVILEGES;語句刷新權(quán)限,重新加載權(quán)限表。執(zhí)行結(jié)果如下:mysql FLUSH PRIVILEGES;Query OK, 0 rows affected (0.03 sec)第21頁,共35頁。除前面介紹的兩種方法外,還可以使用GRANT語句指定某個(gè)賬號的密碼,而不影響賬號當(dāng)前權(quán)限。只有擁有GRANT權(quán)限,才能使用GRANT語句修改密碼。17.2.4 root用戶修改普通用戶密碼GRANT USAGE ON *.* TO usernamehostname IDENTIFIED BY newpwd;使用GRANT語句
29、修改普通用戶密碼3【實(shí)例17-10】使用GRANT語句將lucy用戶的密碼修改為lucy123。使用root用戶登錄MySQL服務(wù)器后,執(zhí)行GRANT語句,結(jié)果如下:mysql GRANT USAGE ON *.* TO lucylocalhost IDENTIFIED BY lucy123;Query OK, 0 rows affected, 1 warning (0.04 sec) 提示在使用GRANT語句或mysqladmin命令修改用戶密碼時(shí),密碼均會(huì)自動(dòng)加密,不需要使用PASSWORD()函數(shù)。第22頁,共35頁。普通用戶登錄MySQL服務(wù)器后,可以使用SET語句設(shè)置自身密碼。基本語
30、法格式如下:17.2.5 普通用戶修改密碼SET PASSWORD = PASSWORD(newpwd);【實(shí)例17-11】用戶lucy使用SET語句將自身密碼修改為lucy123456。執(zhí)行SQL語句,使用用戶lucy登錄MySQL服務(wù)器:C:Usersccymysql -h localhost -u lucy -pEnter password: *執(zhí)行SET語句,修改lucy用戶自身密碼,結(jié)果如下:mysql SET PASSWORD = PASSWORD(lucy123456);Query OK, 0 rows affected, 1 warning (0.02 sec)第23頁,共35
31、頁。對于root用戶密碼丟失這種問題,可以通過特殊方法登錄MySQL服務(wù)器,然后在root用戶下重新設(shè)置登錄密碼。17.2.6 root用戶密碼丟失的解決方法【實(shí)例17-12】在忘記root用戶密碼的情況下,重新設(shè)置其密碼為123456。步驟1 打開“管理員:命令提示符”窗口,執(zhí)行net stop mysql命令,停止MySQL服務(wù)器。mysqld -defaults-file=F:mysql-5.7.18-winx64my.ini -skip-grant-tablesmysql -u root -p步驟2 接著在命令窗口中執(zhí)行mysqld -skip-grant-tables命令啟動(dòng)MySQ
32、L服務(wù): 提示此處的路徑F:mysql-5.7.18-winx64my.ini為MySQL實(shí)際安裝路徑,讀者可根據(jù)實(shí)際情況修改。步驟3 打開“命令提示符”窗口,執(zhí)行mysql -u root -p命令,在提示輸入密碼時(shí)直接回車,不用輸入密碼。USE mysql;步驟4 成功登錄MySQL后,執(zhí)行SQL語句選擇數(shù)據(jù)庫mysql。第24頁,共35頁。17.2.6 root用戶密碼丟失的解決方法UPDATE user SET authentication_string=PASSWORD(123456) WHERE user=root and host=localhost;FLUSH PRIVILEG
33、ES;步驟5 執(zhí)行UPDATE語句,修改user表中root用戶對應(yīng)的authentication_string字段值。步驟6 執(zhí)行FLUSH PRIVILEGES;語句,刷新權(quán)限表。步驟7 退出MySQL后,使用新密碼重新登錄。第25頁,共35頁。17.3MySQL權(quán)限管理第26頁,共35頁。17.3.1 MySQL權(quán)限介紹MySQL賬號的權(quán)限信息存儲(chǔ)在4個(gè)控制權(quán)限的權(quán)限表中。在MySQL啟動(dòng)時(shí),服務(wù)器將這些信息讀入內(nèi)存。MySQL支持的權(quán)限如表17-2所示。表17-2 MySQL支持的權(quán)限權(quán) 限權(quán)限范圍權(quán)限說明CREATE數(shù)據(jù)庫、表或索引創(chuàng)建數(shù)據(jù)庫、表或索引的權(quán)限D(zhuǎn)ROP數(shù)據(jù)庫、表或視圖刪
34、除數(shù)據(jù)庫、表或視圖的權(quán)限GRANT OPTION數(shù)據(jù)庫、表或存儲(chǔ)過程賦予權(quán)限選項(xiàng)REFERENCES數(shù)據(jù)庫或表EVENT數(shù)據(jù)庫在事件調(diào)度里創(chuàng)建、更改、刪除和查看事件ALTER表更改表,比如添加字段、索引等DELETE表刪除數(shù)據(jù)權(quán)限INDEX表索引權(quán)限INSERT表插入數(shù)據(jù)權(quán)限SELECT表或列查詢權(quán)限UPDATE表或列更新權(quán)限CREATE TEMPORARY TABLES表創(chuàng)建臨時(shí)表權(quán)限LOCK TABLES表鎖表權(quán)限TRIGGER表創(chuàng)建觸發(fā)器權(quán)限CREATE VIEW視圖創(chuàng)建視圖的權(quán)限第27頁,共35頁。17.3.1 MySQL權(quán)限介紹表17-2(續(xù))權(quán) 限權(quán)限范圍權(quán)限說明SHOW VIEW
35、視圖顯示視圖的權(quán)限ALTER ROUTINE存儲(chǔ)過程和函數(shù)更改存儲(chǔ)過程和函數(shù)的權(quán)限CREATE ROUTINE存儲(chǔ)過程和函數(shù)創(chuàng)建存儲(chǔ)過程和函數(shù)的權(quán)限EXECUTE存儲(chǔ)過程和函數(shù)執(zhí)行存儲(chǔ)過程的權(quán)限FILE訪問服務(wù)器上的文件文件訪問權(quán)限CREATE USER服務(wù)器管理創(chuàng)建用戶權(quán)限PROCESS存儲(chǔ)過程和函數(shù)查看進(jìn)程權(quán)限RELOAD服務(wù)器管理執(zhí)行flush-hosts,flush-logs,flush-privileges,refresh和reload等權(quán)限REPLICATION CLIENT服務(wù)器管理復(fù)制權(quán)限REPLICATION SLAVE服務(wù)器管理復(fù)制權(quán)限SHOW DATABASES服務(wù)器管理
36、查看數(shù)據(jù)庫權(quán)限SHUTDOWN服務(wù)器管理關(guān)閉數(shù)據(jù)庫權(quán)限SUPER服務(wù)器管理執(zhí)行kill線程權(quán)限第28頁,共35頁。17.3.1 MySQL權(quán)限介紹MySQL中的權(quán)限,根據(jù)其操作對象的不同,可以分為4個(gè)級別。全局性管理權(quán)限:該類權(quán)限主要是對服務(wù)器進(jìn)行管理,作用于整個(gè)給定服務(wù)器中的所有數(shù)據(jù)庫,前面GRANT語句中的*.*就代表所有數(shù)據(jù)庫的權(quán)限。這些權(quán)限存儲(chǔ)在mysql.user表中,決定了來自哪些主機(jī)的哪些用戶可以訪問數(shù)據(jù)庫,如果有全局權(quán)限則意味著對所有數(shù)據(jù)庫都有此權(quán)限。數(shù)據(jù)庫級別權(quán)限:該類權(quán)限適用于一個(gè)給定數(shù)據(jù)庫中的所有目標(biāo),主要用于控制對指定數(shù)據(jù)庫進(jìn)行的操作。這些權(quán)限存儲(chǔ)在mysql.db表中
37、,決定了來自哪些主機(jī)的哪些用戶可以訪問此數(shù)據(jù)庫。數(shù)據(jù)庫對象級別權(quán)限:該類權(quán)限作用于指定的數(shù)據(jù)庫對象(如表、視圖等)或所有數(shù)據(jù)庫對象上。這些權(quán)限存儲(chǔ)在mysql.tables_priv表中,決定了來自哪些主機(jī)的哪些用戶可以訪問此數(shù)據(jù)庫的這個(gè)表。列級別權(quán)限:該類權(quán)限作用于一個(gè)給定表中的單一列,這些權(quán)限存儲(chǔ)在mysql.Columns_priv表中,決定了來自哪些主機(jī)的哪些用戶可以訪問此數(shù)據(jù)庫中這個(gè)表的這個(gè)字段。第29頁,共35頁。17.3.2 查看賬號權(quán)限創(chuàng)建好賬號后,可以使用SHOW GRANTS語句查看賬號的權(quán)限信息,其基本語法格式如下:SHOW GRANTS FOR userhost;【實(shí)例
38、17-13 】使用SHOW GRANTS語句查看用戶lucy的權(quán)限信息。mysql SHOW GRANTS FOR lucylocalhost;+-+| Grants for lucylocalhost |+-+| GRANT SELECT, UPDATE ON *.* TO lucylocalhost|+-+1 row in set (0.01 sec)打開命令窗口,登錄MySQL并執(zhí)行SHOW GRANTS語句。語句及其執(zhí)行結(jié)果如下:除上述方法外,也可以使用SELECT語句查看權(quán)限表中各權(quán)限字段值來確定用戶的權(quán)限信息,其基本語法格式如下:SELECT privileges_list FRO
39、M mysql.user WHERE user=username AND host=hostname;其中的privileges_list為想要查看的權(quán)限字段,可以為select_priv,insert_priv等,各字段之間使用逗號隔開。第30頁,共35頁。17.3.3 給賬號授權(quán)給賬號授權(quán)就是將某個(gè)權(quán)限授予某個(gè)用戶。合理的授權(quán)可以保證數(shù)據(jù)庫的安全。在MySQL中使用GRANT語句為賬號授權(quán),其基本語法格式如下:GRANT priv_type ,priv_type. ON db.table TO userhost WITH with_option with_option.;WITH with_option with_option.為可選參數(shù),除了可以對新創(chuàng)建的用戶賦予GRANT權(quán)限外,其可取值還有4個(gè),用于賬號資源限制,各值及其意義分別如下:MAX_QUERIES_PER_HOUR count:設(shè)置每小時(shí)可以執(zhí)行count次查詢。MAX_UPDATES_PER_HOUR count:設(shè)置每小時(shí)可以執(zhí)行count次更新。MAX_CONNECTIONS_PER_HOUR count:設(shè)置每小時(shí)可以建立count個(gè)連接。MAX_USER_CONNECTIONS count:設(shè)置單個(gè)用戶可以同時(shí)建立count個(gè)連接。第31頁,共35頁。17.3.3 給
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 5星學(xué)霸數(shù)學(xué)下冊
- cmmi認(rèn)證正確定法
- 5分鐘拼讀英語
- 地質(zhì)隊(duì)領(lǐng)導(dǎo)工作實(shí)績
- anticipate的用法和搭配
- 田間小渠道施工方案
- 2025年重慶市眉山地區(qū)單招職業(yè)適應(yīng)性測試題庫學(xué)生專用
- 2025年新星職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- 2025年信陽學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 2025年湖北國土資源職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫必考題
- 帶電跨越110kV線路封網(wǎng)施工方案
- 蛋白質(zhì)飼料選用-蛋白質(zhì)缺乏癥識別(動(dòng)物營養(yǎng)與飼料)
- 中考英語書面表達(dá)技巧
- 心衰患者的容量管理
- 《推翻帝制 民族覺醒》
- 簡歷制作完整版
- 縱向受拉鋼筋搭接長度一覽表
- 安全生產(chǎn)保證體系大全
- 2022年北京師范大學(xué)珠海分校輔導(dǎo)員招聘考試筆試試題及答案解析
- 你好,無廢校園主題班會(huì)
- 出血風(fēng)險(xiǎn)評估課件
評論
0/150
提交評論