精品人妻无码一区二区三区软件 ,麻豆亚洲AV成人无码久久精品,成人欧美一区二区三区视频,免费av毛片不卡无码

您現(xiàn)在的位置是:首頁(yè)計(jì)算機(jī)網(wǎng)絡(luò)論文

計(jì)算機(jī)數(shù)據(jù)庫(kù)管理論文范文

發(fā)布時(shí)間:2014-01-09 16:05:54更新時(shí)間:2014-01-09 16:06:24 1

  迅速發(fā)展的計(jì)算機(jī)技術(shù)將人們帶入具有信息化社會(huì)特征的21世紀(jì),在這樣一個(gè)全新的環(huán)境下,人們的生活、工作都越來(lái)越離不開信息系統(tǒng)。與此同時(shí),侵入計(jì)算機(jī)系統(tǒng)、計(jì)算機(jī)財(cái)產(chǎn)犯罪等計(jì)算機(jī)犯罪現(xiàn)象也日益增多,而信息系統(tǒng)中價(jià)值高、重要的信息也面臨著嚴(yán)峻的安全問題,因而信息系統(tǒng)的安全性以及數(shù)據(jù)庫(kù)對(duì)并發(fā)時(shí)間的處理和控制能力都越來(lái)越受到社會(huì)的關(guān)注,系統(tǒng)信息的安全性保證已經(jīng)是信息安全研究中必須要考慮的問題。

  摘要:數(shù)據(jù)庫(kù)系統(tǒng)作為信息系統(tǒng)中的基礎(chǔ)軟件,其安全性問題十分重要,尤其是對(duì)于并發(fā)事件的控制和處理。該文通過對(duì)于MySQL數(shù)據(jù)庫(kù)系統(tǒng)的詳細(xì)作用功能闡述,對(duì)其性能功能進(jìn)行詳細(xì)的研究后,利用ODBCAPI和MySQL自帶的CAPI函數(shù)來(lái)實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)功能調(diào)用,使得其能夠出現(xiàn)并發(fā)事件時(shí),能快速有效的進(jìn)行數(shù)據(jù)庫(kù)的數(shù)據(jù)控制和處理。

  關(guān)鍵詞:MySQL數(shù)據(jù)庫(kù),并發(fā)事件,數(shù)據(jù)控制

  1MySQL數(shù)據(jù)庫(kù)系統(tǒng)

  SQL數(shù)據(jù)庫(kù)具有速度快、健壯、支持多用戶使用以及操作性強(qiáng)等特點(diǎn),并具有通過客戶機(jī)/為各種操服務(wù)器結(jié)構(gòu)的形式為操作系統(tǒng)提供關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的功能,是一種公布形式的數(shù)據(jù)庫(kù)管理形式。若干不同的庫(kù)和客戶端以及一個(gè)服務(wù)器守護(hù)程序MySQLd構(gòu)成了MySQL的基本組成結(jié)構(gòu),多個(gè)應(yīng)用程序都可以通過它得到編程接口,也因此使各種將客戶端應(yīng)用程序的開發(fā)變得更為便利。

  由服務(wù)器管理的數(shù)據(jù)庫(kù)和表以層次結(jié)構(gòu)方式存放在Datadir中,Windows文件系統(tǒng)和UNIX操作系統(tǒng)的樹形結(jié)構(gòu)都可以將這種層次結(jié)構(gòu)表示出來(lái):(1)數(shù)據(jù)庫(kù)中的表格與數(shù)據(jù)庫(kù)中的目錄中的文件相對(duì)應(yīng),并能夠在數(shù)據(jù)庫(kù)目錄下形成格式描述文件,即FRM,數(shù)據(jù)文件.MYO和索引文件。這三個(gè)文件都用來(lái)存放數(shù)據(jù)庫(kù)中的每一個(gè)表格。(2)每個(gè)數(shù)據(jù)庫(kù)目錄下的一個(gè)目錄與這個(gè)數(shù)據(jù)庫(kù)相對(duì)應(yīng)并以數(shù)據(jù)庫(kù)名存放在Datadir之下。

  2MySQL安全機(jī)制

  由于數(shù)據(jù)庫(kù)中可能會(huì)存在于個(gè)人、企業(yè)甚至是國(guó)家至關(guān)重要的數(shù)據(jù)信息,所以數(shù)據(jù)庫(kù)的安全性也就變得至關(guān)重要,并在社會(huì)中受到越來(lái)越多的關(guān)注。與大多數(shù)數(shù)據(jù)庫(kù)開發(fā)商一樣,MySQL數(shù)據(jù)庫(kù)的開發(fā)商也在不斷改善數(shù)據(jù)庫(kù)的安全性,其安全機(jī)制因而也得到了極大的改善與提高。在目前國(guó)內(nèi)外有關(guān)MySQL數(shù)據(jù)庫(kù)安全性的文獻(xiàn)中,都提到其主要保護(hù)措施是密碼保護(hù),即在登陸數(shù)據(jù)庫(kù)時(shí)需要提供口令。設(shè)置權(quán)限系統(tǒng)的訪問控制的初衷是為了只允許通過認(rèn)證的用戶進(jìn)行訪問,從而提高數(shù)據(jù)庫(kù)的安全性。而在MySQL數(shù)據(jù)庫(kù)中,正是通過事先設(shè)置的權(quán)限表來(lái)控制訪問數(shù)據(jù)庫(kù)的客戶機(jī)。

  2.1訪問控制

  MySQL的安全機(jī)制較為簡(jiǎn)單但也十分有效,經(jīng)過認(rèn)證的有權(quán)訪問的用戶在經(jīng)MySQL數(shù)據(jù)庫(kù)管理員的允許可以對(duì)數(shù)據(jù)庫(kù)中的記錄進(jìn)行查詢,這就是MySQL數(shù)據(jù)庫(kù)的安全性職責(zé)。這種形式的保護(hù)既包括內(nèi)部保護(hù)也包括外部保護(hù)。

  2.2MySQL內(nèi)部安全機(jī)制

  MySQL的內(nèi)部安全機(jī)制中最需要考慮的問題是要考慮到文件系統(tǒng)的級(jí)別,這也正是其中最主要的一個(gè)問題。運(yùn)用這一安全機(jī)制可以有效防止具有運(yùn)行MySQL服務(wù)器權(quán)限的用戶供給MySQL的數(shù)據(jù)目錄。然而,要是MySQL數(shù)據(jù)庫(kù)管理人員并不嚴(yán)格按照要求對(duì)MySQL數(shù)據(jù)目錄中的文件進(jìn)行授權(quán)的話,就會(huì)導(dǎo)致這些文件之間的嘴硬出現(xiàn)簡(jiǎn)單的替換。一旦出現(xiàn)此類情況,MySQL內(nèi)部的安全機(jī)制就無(wú)法再為客戶的授權(quán)提供正確控制的保證。

  因而,在用操作系統(tǒng)的權(quán)限對(duì)文件系統(tǒng)進(jìn)行權(quán)限設(shè)置的過程中,需要嚴(yán)格按照規(guī)定要求,并要由特定的MySQL管理小組對(duì)MySQL用戶進(jìn)行專門的管理,從而保證每個(gè)數(shù)據(jù)目錄都僅有一名用戶有權(quán)對(duì)它進(jìn)行訪問。

  2.3MySQL外部安全機(jī)制

  設(shè)置MySQL授權(quán)表可以阻止客戶對(duì)MySQL服務(wù)器的攻擊,并保證只有合法的系統(tǒng)用戶才具有數(shù)據(jù)庫(kù)中數(shù)據(jù)的訪問權(quán)限的機(jī)制,被稱為MySQL外部安全機(jī)制。

  在MySQL的數(shù)據(jù)庫(kù)授權(quán)表中,具有user,db,tablespriv,hosty以及solumnspriv等多種形式的表格。當(dāng)MySQL系統(tǒng)首次進(jìn)行安裝時(shí),這些授權(quán)表格就會(huì)進(jìn)行初始化過程。而在通過網(wǎng)絡(luò)而鏈接到此MySQL服務(wù)器的所有客戶機(jī)都將有權(quán)限通過對(duì)這些授權(quán)表格的控制而訪問MySQL數(shù)據(jù)庫(kù)。

  在user表格中,清晰地列明了有權(quán)訪問此服務(wù)器的用戶及其相對(duì)應(yīng)的密碼,并對(duì)這些用戶的權(quán)限做出了清楚的說(shuō)明。User表格中的權(quán)限屬于全局權(quán)限,并在整個(gè)數(shù)據(jù)庫(kù)匯總都具有其作用。

  db表格對(duì)所有的數(shù)據(jù)庫(kù)以及每個(gè)數(shù)據(jù)庫(kù)的有權(quán)訪問用戶都做了說(shuō)明,而db表格中的權(quán)限適用于數(shù)據(jù)庫(kù)中的所有的表。

  host表在使用時(shí)往往與db表格進(jìn)行聯(lián)合,在更高的級(jí)別上管理和控制特定客戶機(jī)的訪問權(quán)限,它使用時(shí)較為自由,不會(huì)受到GRANT以及REVOKE或其他形式的語(yǔ)句的影響。

  tablesprive表具有制定數(shù)據(jù)庫(kù)中表的權(quán)限的功能,其中制定的權(quán)限使用于整個(gè)表中的任何列。

  Columnsprive表則對(duì)數(shù)據(jù)庫(kù)中的每一列的權(quán)限進(jìn)行指定。其中制定的權(quán)限只對(duì)該表中的某一列適用。

  此外,授權(quán)表的列具有確定用戶權(quán)限的權(quán)限列和確定某權(quán)限有效時(shí)間的范圍的兩種類型,對(duì)于表和數(shù)據(jù)的權(quán)限主要有以下幾種,包括可以用ALTERTABLE語(yǔ)句,即ALTER;可以刪除數(shù)據(jù)庫(kù)和表,但是無(wú)法對(duì)索引進(jìn)行刪除,即DROP;能夠進(jìn)行數(shù)據(jù)庫(kù)和表的創(chuàng)建但不能進(jìn)行索引建立,即REATE;既能創(chuàng)建也可以刪除索引,即INDEX;可以對(duì)表中的現(xiàn)有記錄進(jìn)行刪除,即DELETE;能通過SELECT語(yǔ)句最表中數(shù)據(jù)進(jìn)行查詢,即SELECT;可以更改已有記錄,即UPDATE。管理權(quán)限則主要包括SHUTDOWN、FILE、GRANT、RELOAD等,即可以通過MySQLadminshutdown將服務(wù)器關(guān)閉;能夠讀寫服務(wù)器主機(jī)上的文件;可以將自己擁有的權(quán)限分給別人使用;可以對(duì)服務(wù)器的管理命令進(jìn)行執(zhí)行。在對(duì)MySQL服務(wù)器進(jìn)行訪問時(shí),其訪問過程可以劃分為兩個(gè)階段?蛻魴C(jī)與服務(wù)器進(jìn)行連接是第一個(gè)階段。服務(wù)器對(duì)授權(quán)表中的user表進(jìn)行查詢,尋找符合要求的數(shù)據(jù)項(xiàng),即能夠與當(dāng)前用戶名及其所提供的密碼相一致,如果找不到符合這個(gè)要求的對(duì)象連接失敗,如若找到,便可以與服務(wù)器建立成功的連接,并由此進(jìn)入到第二個(gè)階段。在第二階段中,MySQL服務(wù)器會(huì)通過授權(quán)表格對(duì)客戶機(jī)發(fā)出的命令請(qǐng)求進(jìn)行審核,由此確定次用戶是否有權(quán)限進(jìn)行命令請(qǐng)求的執(zhí)行,直至服務(wù)器與客戶機(jī)的連接斷開,這種核對(duì)才會(huì)結(jié)束。

  2.4數(shù)據(jù)庫(kù)的維護(hù)與數(shù)據(jù)庫(kù)的修復(fù)

  MySQL數(shù)據(jù)庫(kù)中對(duì)表的檢查和維護(hù)的過程主要有以下四個(gè)步驟:

  一是對(duì)發(fā)生錯(cuò)誤的表進(jìn)行檢查。在對(duì)表的檢查過程中如果順利通過的話,任務(wù)就成功完成,相反,如果不能通過,那么就必須采取措施對(duì)出錯(cuò)的表進(jìn)行修復(fù)。

  二是在修復(fù)出錯(cuò)表之前對(duì)表進(jìn)行拷貝,備份儲(chǔ)存,以防止數(shù)據(jù)的丟失。

  三是對(duì)出錯(cuò)的表進(jìn)行修復(fù)工作。

  四是如果無(wú)法對(duì)表進(jìn)行成功的修復(fù),就需要采用更新的日志文件和備份的數(shù)據(jù)庫(kù)對(duì)表進(jìn)行進(jìn)一步修復(fù)。

  當(dāng)數(shù)據(jù)庫(kù)進(jìn)行了數(shù)據(jù)備份和日志更新有效的前提下才能采取以上四個(gè)步驟來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行修復(fù)。在這兩個(gè)條件都不具備的情況下,MySQL數(shù)據(jù)庫(kù)系統(tǒng)就會(huì)面臨很大的風(fēng)險(xiǎn)。

  2.5數(shù)據(jù)庫(kù)備份與數(shù)據(jù)庫(kù)恢復(fù)

  目前,主要有兩種常見方式可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份。一種是可以對(duì)數(shù)據(jù)庫(kù)文件進(jìn)行直接的拷貝備份,雖然這種方式不需要MySQL系統(tǒng)的支持作為基礎(chǔ),但是它有個(gè)前提保證,就是在進(jìn)行備份的過程中不能出現(xiàn)其他用戶對(duì)被備份的數(shù)據(jù)進(jìn)行修改的情況。另一種則是通過MySQLdump程序進(jìn)行數(shù)據(jù)的備份,這種方法需要在與MySQL服務(wù)器共同運(yùn)行的前提下才能采用。而在備份數(shù)據(jù)的過程中也需要注意五方面的事項(xiàng)。一是要定期進(jìn)行數(shù)據(jù)的備份。二是在備份時(shí)要執(zhí)行更新日記。這樣一來(lái),盡管我們使用的是通過備份文件進(jìn)行還原的數(shù)據(jù)庫(kù)數(shù)據(jù),但也可以通過執(zhí)行更新日記的查詢對(duì)癱瘓深刻的數(shù)據(jù)庫(kù)中的表的狀態(tài)進(jìn)行查詢。這是因?yàn)閿?shù)據(jù)庫(kù)備份文件在文件系統(tǒng)的備份語(yǔ)言中表示完全轉(zhuǎn)儲(chǔ),而更新日志則只表示增量轉(zhuǎn)儲(chǔ)。三是要對(duì)更新日志進(jìn)行備份,這是為了在MySQL服務(wù)器中包含數(shù)據(jù)庫(kù)備份的磁盤驅(qū)動(dòng)器也受到損壞的情況下可以采取補(bǔ)救措施。四是應(yīng)該在不同的文件系統(tǒng)中存放備份的文件和數(shù)據(jù)庫(kù),這樣可以降低聲稱的備份文件填滿含有數(shù)據(jù)字典的文件系統(tǒng)的可能性。五是要注意對(duì)就日志文件進(jìn)行保存的數(shù)量和日志文件循環(huán)的頻率要根據(jù)為保持舊日志所提供的磁盤空間的大小和服務(wù)器的工作狀況決定。

  在MySQL服務(wù)器中的數(shù)據(jù)庫(kù)都完全毀壞的情況下,我們要盡快對(duì)數(shù)據(jù)庫(kù)進(jìn)行補(bǔ)救和恢復(fù)工作。備份文件和更新日志都是屬于這一過程。通過對(duì)文件進(jìn)行備份,對(duì)表進(jìn)行恢復(fù)并將其恢復(fù)到其該備份時(shí)候的狀態(tài)。而當(dāng)備份進(jìn)展到發(fā)生故障的時(shí)段時(shí),其對(duì)表進(jìn)行修改的結(jié)果也會(huì)隨之丟失。但是我們依舊可以依據(jù)更新日志的內(nèi)容對(duì)數(shù)據(jù)庫(kù)表進(jìn)行修改的所有結(jié)果進(jìn)行查詢,并利用更新日志將MySQL的輸入進(jìn)行重新的查詢。

  3利用ODBCAPI實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)功能調(diào)用

  開放式數(shù)據(jù)庫(kù)互聯(lián),即我們常說(shuō)的ODBC(OpenDatabaseConnectivity),它是Windows開放性結(jié)構(gòu)的重要組成部分之一,并對(duì)數(shù)據(jù)庫(kù)制造商提供的驅(qū)動(dòng)程序有較強(qiáng)的依賴性。在對(duì)ODBCAPI進(jìn)行使用的過程中,Windows的ODBC管理程序先尋找到正確的驅(qū)動(dòng)程序,再給該驅(qū)動(dòng)程序進(jìn)行訪問請(qǐng)求的傳遞,在接收到命令后,該程序就會(huì)通過SQL語(yǔ)言對(duì)DBMS進(jìn)行相關(guān)指示,并使其完成數(shù)據(jù)庫(kù)訪問工作。在Windows下,在安裝ODBC數(shù)據(jù)庫(kù)的前提下,多種數(shù)據(jù)庫(kù)都可以通過ODBC進(jìn)行數(shù)據(jù)庫(kù)連接以達(dá)到訪問它們的數(shù)據(jù)的目的。

  MySQL數(shù)據(jù)庫(kù)制造商也為其提供了相應(yīng)的ODBC驅(qū)動(dòng)程序,myodbc-2.50.31-win95是它至今為止最新的版本。通過ODBCAPI,在WIN98環(huán)境中它可以利用編程語(yǔ)言進(jìn)行ODBC所支持的各項(xiàng)操作。即便是在各種數(shù)據(jù)庫(kù)被ODBC屏蔽的情況下,一些其他程序也可以通過ODBC進(jìn)行對(duì)MySQL數(shù)據(jù)庫(kù)的各項(xiàng)操作?梢,OBDC有助于提高程序?qū)?shù)據(jù)庫(kù)的通用性。

  4利用MySQL自帶的CAPI函數(shù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)功能調(diào)用

  各個(gè)數(shù)據(jù)庫(kù)間存在的差異導(dǎo)致它們提供的數(shù)據(jù)庫(kù)的功能間也存在極大的差異。如此一來(lái),即便是通過ODBCAPI也無(wú)法使一個(gè)系統(tǒng)具備所有數(shù)據(jù)庫(kù)都具有的數(shù)據(jù)庫(kù)功能,從而對(duì)程序?qū)?shù)據(jù)庫(kù)的控制能力產(chǎn)生負(fù)面影響,也使數(shù)據(jù)庫(kù)的能力無(wú)法得到充分的發(fā)揮。且損失效能力是這種統(tǒng)一的接口的前提,這都在一定程度上導(dǎo)致了數(shù)據(jù)庫(kù)操作時(shí)間的延長(zhǎng)。因而,解決這些問題已是刻不容緩的事情。MySQL的制造商也認(rèn)識(shí)到了解決這一問題的重要性,數(shù)據(jù)庫(kù)不僅提供ODBC驅(qū)動(dòng)程序,還提供各種編程環(huán)境下的API,CAPI也包括其中。實(shí)踐證明,這些API函數(shù)可以充分發(fā)揮數(shù)據(jù)庫(kù)的能力,從而減少數(shù)據(jù)庫(kù)操作所需要的延長(zhǎng)時(shí)間,但是它卻也帶來(lái)了不良的影響,即對(duì)程序的通用性造成了嚴(yán)重的影響。

  一組函數(shù)和一組運(yùn)用于函數(shù)的數(shù)據(jù)類型共同構(gòu)成了MySQL數(shù)據(jù)庫(kù)提供的一整套CAPI函數(shù)。CAPI函數(shù)可以在這些函數(shù)與MySQL服務(wù)器進(jìn)行通信和數(shù)據(jù)訪問的過程中對(duì)數(shù)據(jù)庫(kù)進(jìn)行直接操控,從而有效地提高操控的效能。

  行集、查詢返回結(jié)果集、字段信息、數(shù)據(jù)庫(kù)連接句柄、字段表的偏移量、自定義的無(wú)符號(hào)整型數(shù)等都是CAPI數(shù)據(jù)的類型,即MYSQLROW、MYSQLRES、MYSQLFIELD、MYSQ、MYSQLFIELDOFFSET、myulonglong。另外,MySQLconnect()、MySQLinit()、MySQLclose()、MySQLquery()、MySQLstoreresult()等函數(shù)都是CAPI提供的函數(shù),其中MySQLquery()是最為重要的函數(shù),具有完成絕大部分?jǐn)?shù)據(jù)庫(kù)操控的作用。

  參考文獻(xiàn):

  [1]李榮國(guó),王見.MySQL數(shù)據(jù)庫(kù)在自動(dòng)測(cè)試系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2011(31):169-171.

  [2]宋國(guó)柱,陳俊杰.基于Mysql數(shù)據(jù)庫(kù)的智能DNS系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009(24):5771-5773.

  [3]邵志遠(yuǎn),金海,唐曉輝.基于主動(dòng)TCP連接復(fù)制的高性能高可用MySQL數(shù)據(jù)庫(kù)集群[J].計(jì)算機(jī)研究與發(fā)展,2005,42(6):1006-1012.


轉(zhuǎn)載請(qǐng)注明來(lái)自:http://www.jinnzone.com/jisuanjiwangluolw/28839.html