MySQL數(shù)據(jù)庫教程課件_第1頁
MySQL數(shù)據(jù)庫教程課件_第2頁
MySQL數(shù)據(jù)庫教程課件_第3頁
MySQL數(shù)據(jù)庫教程課件_第4頁
MySQL數(shù)據(jù)庫教程課件_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第10章數(shù)據(jù)安全學(xué)習(xí)目標(biāo)掌握用戶和數(shù)據(jù)權(quán)限的管理方法。掌握備份和恢復(fù)數(shù)據(jù)的方法。了解日志文件。10.1用戶和數(shù)據(jù)權(quán)限管理為了保證數(shù)據(jù)庫的安全性與完整性,MySQL要求只有擁有相應(yīng)權(quán)限的用戶可以訪問數(shù)據(jù)庫中相應(yīng)的對(duì)象,執(zhí)行相應(yīng)的合法操作,用戶應(yīng)對(duì)他們需要的數(shù)據(jù)具有適當(dāng)?shù)脑L問權(quán)。10.1.1MySQL的權(quán)限系統(tǒng)1.權(quán)限系統(tǒng)的工作過程當(dāng)用戶登錄到MySQL時(shí),MySQL的權(quán)限系統(tǒng)通過下面兩個(gè)階段進(jìn)行認(rèn)證。(1)連接核實(shí)階段對(duì)登錄到MySQL的用戶進(jìn)行身份認(rèn)證,判斷該用戶是否屬于合法用戶。若是合法用戶,則通過認(rèn)證;若是不合法用戶,則拒絕連接。(2)請(qǐng)求核實(shí)階段用戶登錄成功之后,MySQL進(jìn)入請(qǐng)求核實(shí)階段。針對(duì)該用戶的每一個(gè)請(qǐng)求,MySQL都會(huì)檢查它要執(zhí)行什么操作,以及用戶是否有權(quán)限來執(zhí)行這些操作。10.1.1MySQL的權(quán)限系統(tǒng)2.權(quán)限表(1)user表:存儲(chǔ)可以登錄MySQL的所有用戶的信息。(2)db表:存儲(chǔ)用戶對(duì)數(shù)據(jù)庫的操作權(quán)限,決定了用戶能操作哪些數(shù)據(jù)庫。(3)tables_priv表:存儲(chǔ)用戶對(duì)數(shù)據(jù)表的操作權(quán)限,決定了用戶能操作哪些數(shù)據(jù)表。(4)columns_priv表:存儲(chǔ)用戶對(duì)數(shù)據(jù)表中字段的操作權(quán)限,決定了用戶能操作哪些字段。(5)procs_priv表:存儲(chǔ)用戶對(duì)存儲(chǔ)過程和存儲(chǔ)函數(shù)的操作權(quán)限,決定了用戶是否能夠創(chuàng)建、修改、刪除或執(zhí)行存儲(chǔ)過程和存儲(chǔ)函數(shù)。10.1.2用戶管理1.添加用戶2.刪除用戶3.修改用戶名4.修改用戶密碼1.添加用戶添加用戶的語句:CREATEUSER用戶名1[IDENTIFIEDBY"密碼1"]

[,用戶名2[IDENTIFIEDBY"密碼2"]…];(1)用戶名:格式為user_name@host_name,其中user_name是用戶名,host_name是主機(jī)名。如果未指定主機(jī)名,默認(rèn)是“%”,表示一組主機(jī)。(2)IDENTIFIEDBY子句:指定密碼,密碼必須用英文單引號(hào)或雙引號(hào)引起來。

添加用戶舉例【例10-1】添加用戶test1,主機(jī)名是localhost,密碼為123。

CREATEUSERtest1@localhostIDENTIFIEDBY"123";【例10-2】添加用戶test2,密碼為456;添加用戶test3,密碼為111;添加用戶test4,密碼為666,主機(jī)名均為localhost。CREATEUSERtest2@localhostIDENTIFIEDBY"456",test3@localhostIDENTIFIEDBY"111",test4@localhostIDENTIFIEDBY"666";2.刪除用戶刪除用戶的語句:DROPUSER用戶名1[,用戶名2…];【例10-3】刪除用戶test4。DROPUSERtest4@localhost;3.修改用戶名修改用戶名的語句:RENAMEUSER原用戶名1TO新用戶名1[,原用戶名2TO新用戶名2…];【例10-4】將用戶test3的名稱修改為test。RENAMEUSERtest3@localhostTOtest@localhost;4.修改用戶密碼修改用戶密碼的語句:SETPASSWORD[FOR用戶名]="新密碼";省略FOR子句時(shí),表示修改當(dāng)前用戶的密碼。

【例10-5】將用戶test的密碼修改為123456。SETPASSWORDFORtest@localhost="123456";10.1.3權(quán)限管理新用戶擁有的權(quán)限很少,只被允許進(jìn)行不需要權(quán)限的操作。合理的權(quán)限設(shè)置可以保證數(shù)據(jù)庫的安全。MySQL中的主要權(quán)限名稱及說明。10.1.3權(quán)限管理1.授予權(quán)限2.查看權(quán)限3.轉(zhuǎn)移權(quán)限4.收回權(quán)限1.授予權(quán)限授予權(quán)限的語句:GRANT權(quán)限1[(字段列表1)][,權(quán)限2[(字段列表2)]…]ON[目標(biāo)]{表名|*|*.*|數(shù)據(jù)庫名.*}TO用戶1[,用戶2…][WITHGRANTOPTION];(1)權(quán)限:指定權(quán)限名稱,如INSERT、DELETE等。(2)字段列表:指定權(quán)限作用于哪些字段,字段之間用英文逗號(hào)隔開。默認(rèn)為所有字段。(3)目標(biāo):可以是TABLE、FUNCTION或PROCEDURE。(4)表名:表示權(quán)限作用于指定的數(shù)據(jù)表(5)*.*:表示權(quán)限作用于所有數(shù)據(jù)庫和所有數(shù)據(jù)表。(6)*:如果未指定當(dāng)前數(shù)據(jù)庫,含義與*.*相同,否則權(quán)限作用于當(dāng)前數(shù)據(jù)庫。(7)數(shù)據(jù)庫名.*:表示權(quán)限作用于指定數(shù)據(jù)庫中的所有數(shù)據(jù)表。(8)WITHGRANTOPTION:含義是可以將自己的權(quán)限授予其他用戶。授予權(quán)限舉例授予權(quán)限的語句:GRANT權(quán)限1[(字段列表1)][,權(quán)限2[(字段列表2)]…]ON[目標(biāo)]{表名|*|*.*|數(shù)據(jù)庫名.*}TO用戶1[,用戶2…][WITHGRANTOPTION];【例10-6】使用GRANT語句將數(shù)據(jù)庫scoredb中學(xué)生表student的SELECT權(quán)限,以及姓名sname和性別sex字段的UPDATE權(quán)限授予用戶test2。GRANTSELECT,UPDATE(sname,sex)ONscoredb.studentTOtest2@localhost;

授予權(quán)限舉例下面分別利用test1和test2兩個(gè)用戶驗(yàn)證學(xué)生表student中的姓名sname和性別sex字段的SELECT和UPDATE權(quán)限。

(1)以用戶test2登錄MySQL進(jìn)行驗(yàn)證。由于用戶test2具有相應(yīng)的權(quán)限,所以張函的性別sex字段值修改成功。授予權(quán)限舉例下面分別利用test1和test2兩個(gè)用戶驗(yàn)證學(xué)生表student中的姓名sname和性別sex字段的SELECT和UPDATE權(quán)限。

(2)以用戶test1登錄MySQL進(jìn)行驗(yàn)證。由于用戶test1沒有任何授權(quán),選擇數(shù)據(jù)庫scoredb時(shí)就已經(jīng)被拒絕訪問,更不用說修改性別sex字段值了。C:\ProgramFiles\MySQL\MySQLServer8.0\bin>mysql-utest1-pEnterpassword:***WelcometotheMySQLmonitor.Commandsendwith;or\g.YourMySQLconnectionidis15Serverversion:8.0.30MySQLCommunityServer-GPLCopyright(c)2000,2022,Oracleand/oritsaffiliates.OracleisaregisteredtrademarkofOracleCorporationand/oritsaffiliates.Othernamesmaybetrademarksoftheirrespectiveowners.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.mysql>USEscoredb;ERROR1044(42000):Accessdeniedforuser'test1'@'localhost'todatabase'scoredb'授予權(quán)限舉例授予權(quán)限的語句:GRANT權(quán)限1[(字段列表1)][,權(quán)限2[(字段列表2)]…]ON[目標(biāo)]{表名|*|*.*|數(shù)據(jù)庫名.*}TO用戶1[,用戶2…][WITHGRANTOPTION];【例10-7】使用GRANT語句授予用戶test1對(duì)數(shù)據(jù)庫scoredb中的教師表teacher的查詢SELECT和插入INSERT權(quán)限。GRANTSELECT,INSERTONscoredb.teacherTOtest1@localhost;

授予權(quán)限舉例授予權(quán)限的語句:GRANT權(quán)限1[(字段列表1)][,權(quán)限2[(字段列表2)]…]ON[目標(biāo)]{表名|*|*.*|數(shù)據(jù)庫名.*}TO用戶1[,用戶2…][WITHGRANTOPTION];【例10-8】使用GRANT語句將數(shù)據(jù)庫scoredb的所有權(quán)限授予用戶test。GRANTALLONscoredb.*TOtest@localhost;

2.查看權(quán)限查看權(quán)限的語句:SHOWGRANTSFOR用戶名;【例10-9】使用SHOWGRANTS語句查看用戶test1的權(quán)限信息。SHOWGRANTSFORtest1@localhost;mysql>SHOWGRANTSFORtest1@localhost;+--------------------------------------------------------------------+|Grantsfortest1@localhost|+--------------------------------------------------------------------+|GRANTUSAGEON*.*TO`test1`@`localhost`||GRANTSELECT,INSERTON`scoredb`.`teacher`TO`test1`@`localhost`|+--------------------------------------------------------------------+3.轉(zhuǎn)移權(quán)限在GRANT語句中,將WITH子句指定為WITHGRANTOPTION,表示TO子句中所指定的所有用戶都具有將自己所擁有的權(quán)限授予其他用戶的權(quán)利?!纠?0-10】使用GRANT語句將數(shù)據(jù)庫scoredb中所有表的CREATE、ALTER和DROP權(quán)限授予用戶test1,并允許用戶test1將這些權(quán)限授予其他用戶。GRANTCREATE,ALTER,DROPONscoredb.*TOtest1@localhostWITHGRANTOPTION;獲得GRANTOPTION權(quán)限后,用戶test1就可以將CREATE、ALTER和DROP權(quán)限傳遞給其他用戶。4.收回權(quán)限(1)收回用戶的所有權(quán)限的語句REVOKEALLPRIVILEGES,GRANTOPTIONFROM用戶1[,用戶2…];【例10-11】使用REVOKE語句收回用戶test1的所有權(quán)限。REVOKEALLPRIVILEGES,GRANTOPTIONFROMtest1@localhost;mysql>SHOWGRANTSFORtest1@localhost;+----------------------------------------------+|Grantsfortest1@localhost|+----------------------------------------------+|GRANTUSAGEON*.*TO`test1`@`localhost`|+----------------------------------------------+4.收回權(quán)限(2)收回特定的權(quán)限的語句REVOKE權(quán)限1[(字段列表1)][,權(quán)限2[(字段列表2)]…]ON[目標(biāo)]{表名|*|*.*|數(shù)據(jù)庫名.*}FROM用戶1[,用戶2…];【例10-12】使用REVOKE語句收回用戶test2對(duì)數(shù)據(jù)庫scoredb學(xué)生表student中性別sex字段的UPDATE權(quán)限。REVOKEUPDATE(sex)ONscoredb.studentFROMtest2@localhost;mysql>SHOWGRANTSFORtest2@localhost;+------------------------------------------------------------------------------+|Grantsfortest2@localhost|+------------------------------------------------------------------------------+|GRANTUSAGEON*.*TO`test2`@`localhost`||GRANTSELECT,UPDATE(`sname`)ON`scoredb`.`student`TO`test2`@`localhost`|+------------------------------------------------------------------------------+10.2數(shù)據(jù)備份與數(shù)據(jù)恢復(fù)為了防止人為操作和自然災(zāi)害等導(dǎo)致數(shù)據(jù)丟失或損壞,需要定期對(duì)數(shù)據(jù)庫進(jìn)行備份,以便出現(xiàn)意外并造成數(shù)據(jù)庫數(shù)據(jù)丟失或損壞時(shí),可以使用備份的數(shù)據(jù)進(jìn)行恢復(fù),將不良影響和損失降到最低。10.2.1數(shù)據(jù)備份數(shù)據(jù)備份命令:Mysqldump功能:將數(shù)據(jù)庫中的數(shù)據(jù)備份成一個(gè)文本文件,各個(gè)數(shù)據(jù)庫及數(shù)據(jù)表的結(jié)構(gòu)和數(shù)據(jù)都存儲(chǔ)在該文本文件中。工作原理:先將需要備份的數(shù)據(jù)庫及數(shù)據(jù)表的結(jié)構(gòu)轉(zhuǎn)換成相應(yīng)的CREATE語句,然后將每張數(shù)據(jù)表中的數(shù)據(jù)轉(zhuǎn)換成一條INSERT語句。以后在恢復(fù)數(shù)據(jù)時(shí),直接使用這些CREATE和INSERT語句創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)表并插入數(shù)據(jù)。使用要求:必須以Windows管理員身份打開命令提示符窗口,并且切換到MySQL安裝目錄下的bin文件夾。cdC:\ProgramFiles\MySQL\MySQLServer8.0\bin數(shù)據(jù)備份舉例1.使用mysqldump命令備份數(shù)據(jù)表mysqldump-u用戶名-p[密碼]數(shù)據(jù)庫名表名1[表名2…]>文件名.sql【例10-13】以用戶root的身份使用mysqldump命令將數(shù)據(jù)庫scoredb中的課程表course備份到D:\backup文件夾中,備份文件名為course.sql。mysqldump-uroot-pscoredbcourse>D:\backup\course.sql數(shù)據(jù)備份舉例備份文件course.sql的主要內(nèi)容數(shù)據(jù)備份舉例2.使用mysqldump命令備份數(shù)據(jù)庫mysqldump-u用戶名-p[密碼]--databases數(shù)據(jù)庫名1[數(shù)據(jù)庫名2…]>文件名.sql【例10-14】以用戶root的身份使用mysqldump命令將數(shù)據(jù)庫scoredb備份到D:\backup文件夾中,備份文件名為scoredb.sql。mysqldump-uroot-p--databasesscoredb>D:\backup\scoredb.sql數(shù)據(jù)備份舉例備份文件scoredb.sql的部分內(nèi)容。數(shù)據(jù)備份舉例3.使用mysqldump命令備份全部數(shù)據(jù)庫mysqldump-u用戶名-p[密碼]--all-databases>文件名.sql【例10-15】以用戶root的身份使用mysqldump命令將全部數(shù)據(jù)庫備份到D:\backup文件夾中,備份文件名為wholedb.sql。mysqldump-uroot-p--all-databases>D:\backup\wholedb.sql10.2.2數(shù)據(jù)恢復(fù)數(shù)據(jù)恢復(fù)命令:mysql-u用戶名–p[數(shù)據(jù)庫名]<文件名.sql注意:mysql命令和mysqldump命令一樣,必須直接在Windows命令提示符下執(zhí)行。數(shù)據(jù)恢復(fù)舉例【例10-16】新建一個(gè)數(shù)據(jù)庫testdb,以用戶root的身份使用mysql命令將D:\backup\course.sql文件中備份的課程表course導(dǎo)入數(shù)據(jù)庫testdb中。①在MySQL命令行使用CREATEDATABASE語句創(chuàng)建一個(gè)新數(shù)據(jù)庫testdb。CREATEDATABASEtestdb;②在Windows命令提示符下使用mysql命令恢復(fù)課程表course。mysql-uroot-ptestdb<D:\backup\course.sql③在MySQL命令行使用SHOWTABLES語句查看數(shù)據(jù)庫testdb中的表。USEtestdb;SHOWTABLES;需要在Windows命令提示符窗口和MySQL命令行窗口之間交替執(zhí)行。mysql>USEtestdb;Databasechangedmysql>SHOWTABLES;+------------------+|Tables_in_testdb|+------------------+|course|+------------------+數(shù)據(jù)恢復(fù)舉例【例10-17】刪除已經(jīng)創(chuàng)建好的數(shù)據(jù)庫scoredb后,以用戶root的身份使用mysql命令將D:\backup\scoredb.sql文件中備份的數(shù)據(jù)庫scoredb恢復(fù)。①在MySQL命令行使用DROPDATABASE命令刪除數(shù)據(jù)庫scoredb。

DROPDATABASEscoredb;②在Windows命令提示符下使用mysql命令恢復(fù)數(shù)據(jù)庫scoredb。mysql-uroot-p<D:\backup\scoredb.sql③在MySQL命令行使用SHOWDATABASES查看數(shù)據(jù)庫。SHOWDATABASES;mysql>SHOWDATABASES;+--------------------+|Database|+--------------------+|information_schema||librarydb||mysql||performance_schema||scoredb||sys||testdb|+--------------------+10.3日志文件日志文件中記錄了MySQL的運(yùn)行情況、用戶操作和錯(cuò)誤信息等。10.3.1二進(jìn)制日志文件二進(jìn)制日志文件主要記錄數(shù)據(jù)庫的變化情況,包含所有修改了數(shù)據(jù)和潛在修改了數(shù)據(jù)的語句,以及每條語句的執(zhí)行時(shí)間信息,但不包含沒有修改任何數(shù)據(jù)的語句。二進(jìn)制日志文件的主要作用是幫助用戶最大程度地恢復(fù)數(shù)據(jù),因?yàn)樗涗浟擞脩魧?duì)數(shù)據(jù)庫進(jìn)行的所有修改。1.二進(jìn)制日志文件的配置2.查看二進(jìn)制日志文件列表3.暫停二進(jìn)制日志功能4.刪除二進(jìn)制日志文件5.使用二進(jìn)制日志文件恢復(fù)數(shù)據(jù)庫1.二進(jìn)制日志文件的配置(1)log_bin:值為ON,表明二進(jìn)制日志功能已經(jīng)開啟。(2)log_bin_basename:日志文件的路徑和文件名前綴,其中DESKTOP-AGMQ460是主機(jī)名。(3)log_bin_index:索引文件名。其內(nèi)容為所有二進(jìn)制日志文件的清單。(4)log_bin_trust_function_creators:變量的值表明是否允許用戶創(chuàng)建可能導(dǎo)致不安全的函數(shù)。(5)log_bin_use_v1_row_events:二進(jìn)制日志文件的版本信息。mysql>SHOWVARIABLESLIKE"LOG_BIN%";+-----------------+---------------------------------------------------------------------+|Variable_name|Value|+-----------------+---------------------------------------------------------------------+|log_bin|ON||log_bin_basename|C:\ProgramData\MySQL\MySQLServer8.0\Data\DESKTOP-AGMQ460-bin||log_bin_index|C:\ProgramData\MySQL\MySQLServer8.0\Data\DESKTOP-AGMQ460-bin.index||log_bin_trust_function_creators|OFF||log_bin_use_v1_row_events|OFF|+-----------------+---------------------------------------------------------------------+2.查看二進(jìn)制日志文件列表查看二進(jìn)制日志文件列表的語句:SHOWBINARYLOGS;mysql>SHOWBINARYLOGS;+----------------------------+-----------+-----------+|Log_name|File_size|Encrypted|+----------------------------+-----------+-----------+|DESKTOP-AGMQ460-bin.000001|214|No||DESKTOP-AGMQ460-bin.000002|214|No||DESKTOP-AGMQ460-bin.000003|214|No||DESKTOP-AGMQ460-bin.000004|7716|No||DESKTOP-AGMQ460-bin.000005|180|No||DESKTOP-AGMQ460-bin.000006|19711|No||DESKTOP-AGMQ460-bin.000007|31768|No||DESKTOP-AGMQ460-bin.000008|180|No||DESKTOP-AGMQ460-bin.000009|180|No||DESKTOP-AGMQ460-bin.000010|157|No|+----------------------------+-----------+-----------+3.暫停二進(jìn)制日志功能暫停二進(jìn)制日志功能的語句:SETSQL_LOG_BIN={0|1};(1)0:暫停二進(jìn)制日志功能。(2)1:?jiǎn)?dòng)暫停的二進(jìn)制日志功能。4.刪除二進(jìn)制日志文件(1)刪除比指定編號(hào)小的所有二進(jìn)制日志文件PURGE{MASTER|BINARY}LOGSTO"二進(jìn)制日志文件名";【例10-18】刪除所有編號(hào)小于000005的二進(jìn)制日志文件。PURGEMASTERLOGSTO"DESKTOP-AGMQ460-bin.000005";mysql>SHOWBINARYLOGS;+----------------------------+-----------+-----------+|Log_name|File_size|Encrypted|+----------------------------+-----------+-----------+|DESKTOP-AGMQ460-bin.000005|180|No||DESKTOP-AGMQ460-bin.000006|19711|No||DESKTOP-AGMQ460-bin.000007|31768|No||DESKTOP-AGMQ460-bin.000008|180|No||DESKTOP-AGMQ460-bin.000009|180|No||DESKTOP-AGMQ460-bin.000010|157|No|+----------------------------+-----------+-----------+4.刪除二進(jìn)制日志文件(2)刪除指定日期以前的所有二進(jìn)制日志文件PURGE{MASTER|BINARY}LOGSBEFORE"日期和時(shí)間";【例10-19】刪除2022年9月30日23:00:00之前的二進(jìn)制日志文件。

PURGEMASTERLOGSBEFORE"2022-09-3023:00:00";4.刪除二進(jìn)制日志文件(3)刪除所有二進(jìn)制日志文件RESETMASTER;mysql>SHOWBINARYLOGS;+----------------------------+-----------+-----------+|Log_name|File_size|Encrypted|+----------------------------+-----------+-----------+|DESKTOP-AGMQ460-bin.000001|157|No|+----------------------------+-----------+-----------+5.使用二進(jìn)制日志文件恢復(fù)數(shù)據(jù)庫二進(jìn)制日志文件雖然可以用來恢復(fù)MySQL數(shù)據(jù)庫,但是其占用的存儲(chǔ)空間非常大。因此,在備份MySQL數(shù)據(jù)庫之后,應(yīng)該刪除備份之前的所有二進(jìn)制日志文件。如果備份之后發(fā)生異常,造成數(shù)據(jù)庫的數(shù)據(jù)損失,則可以通過備份之后產(chǎn)生的二進(jìn)制日志文件進(jìn)行還原?!纠?0-21】假定已經(jīng)完成了數(shù)據(jù)庫scoredb備份,備份文件為scoredb.sql,并且刪除了所有的二進(jìn)制日志文件。創(chuàng)建全新的二進(jìn)制日志文件后,在課程表course中插入了一門新課程,在學(xué)生表student中刪除了一名退學(xué)的學(xué)生。就在剛才,數(shù)據(jù)庫崩潰了,請(qǐng)將數(shù)據(jù)庫恢復(fù)。請(qǐng)模擬這個(gè)過程。10.3.2錯(cuò)誤日志文件(1)在MySQL數(shù)據(jù)庫中,錯(cuò)誤日志功能默認(rèn)是開啟的,并且無法被關(guān)閉。默認(rèn)情況下,MySQL會(huì)將啟動(dòng)和停止數(shù)據(jù)庫的信息以及一些錯(cuò)誤信息記錄到錯(cuò)誤日志文件。(2)錯(cuò)誤日志文件名的形式為“主機(jī)名.err”,例如,DESKTOP-AGMQ460.err。(3)錯(cuò)誤日志文件以文本文件形式存儲(chǔ),可以通過記事本程序查看。(4)錯(cuò)誤日志文件可以直接刪除10.3.3通用查詢?nèi)罩疚募?)通過查看通用查詢?nèi)罩疚募?,可以了解用戶?duì)MySQL數(shù)據(jù)庫進(jìn)行了哪些操作。(2)通用查詢?nèi)罩疚募男问綖椤爸鳈C(jī)名.log”。例如,DESKTOP-AGMQ460.log。(3)通用查詢?nèi)罩疚募晕谋疚募问酱鎯?chǔ),可以通過記事本程序查看。(4)通用查詢?nèi)罩疚募部梢灾苯觿h除。10.3.4慢查詢?nèi)罩疚募?)通過查看慢查詢?nèi)罩疚募?,可以找出?zhí)行時(shí)間較長、效率低下的查詢語句,然后進(jìn)行優(yōu)化。(2)慢查詢?nèi)罩疚募男问綖椤爸鳈C(jī)名-slow.log”。例如,DESKTOP-AGMQ460-slow.log。(3)慢查詢?nèi)罩疚募晕谋疚募问酱鎯?chǔ),可以通過記事本程序查看。(4)慢查詢?nèi)罩疚募梢灾苯觿h除。10.4課堂案例:學(xué)生成績(jī)管理數(shù)據(jù)庫的數(shù)據(jù)安全1.用戶管理(1)添加用戶user1、user2和user3,主機(jī)名是localhost,密碼均為123。CREATEUSERuser1@localhostIDENTIFIEDBY"123",user2@localhostIDENTIFIEDBY"123",user3@localhostIDENTIFIEDBY"123";10.4課堂案例:學(xué)生成績(jī)管理數(shù)據(jù)庫的數(shù)據(jù)安全1.用戶管理(2)將用戶user3的名稱修改為user。RENAMEUSERuser3@localhostTOuser@localhost;(3)將用戶user的密碼修改為123456。SETPASSWORDFORuser@localhost="123456";(4)刪除用戶user。DROPUSERuser@localhost;10.4課堂案例:學(xué)生成績(jī)管理數(shù)據(jù)庫的數(shù)據(jù)安全2.權(quán)限管理(1)將數(shù)據(jù)庫scoredb中課程表course的課程名稱cname和學(xué)時(shí)hours字段的UPDATE權(quán)限授予用戶user1。GRANTUPDATE(cname,hours)ONscoredb.courseTOuser1@localhost;(2)將數(shù)據(jù)庫scoredb中選修成績(jī)表score的INSERT和DELETE權(quán)限授予用戶user1。GRANTINSERT,DELETEONscoredb.scoreTOuser1@localhost;(3)授予用戶user2對(duì)數(shù)據(jù)庫scoredb擁有所有操作權(quán)限,并允許用戶user2將這些權(quán)限授予其他用戶。GRANTALLONscoredb.*TOuser2@localhostWITHGRANTOPTION;10.4課堂案例:學(xué)生成績(jī)管理數(shù)據(jù)庫的數(shù)據(jù)安全2.權(quán)限管理(4)查看用戶

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論