數據庫課程操作指導21_第1頁
數據庫課程操作指導21_第2頁
數據庫課程操作指導21_第3頁
數據庫課程操作指導21_第4頁
數據庫課程操作指導21_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、圖1 sql server的體系結構示意圖。安裝組件史抽整/好1h1翼 enilirh 9u«ry(q)一. 概述:1. sql server 2000 組成sql server是可縮放的高性能 基于sql和客戶/服務器體系結構 的關系數據庫管理系統(tǒng)服務器軟件 包,是由microsoft公司推出的 sql server數據庫管理系統(tǒng)的最新 版本。從圖1 sql server的體系結 構示意圖屮看出,sql server 2000 由4部分組成,在實驗屮,我們要 求掌握基于sql server 2000的服務 器的使用,也就是數據庫管理員 dba的主耍操作。2. sql server

2、2000 的安裝sql server 2000的常見版本有:企業(yè)版、標準版、個人版、開發(fā)人員版等。對軟硬 件的最低需求為:cpu pentium 166mhz,內存 64mb,碩盤 18() mb。sql server 2000 企業(yè)版和標準版只能在windows2000 server版和professional版操作系統(tǒng)卜運行。卜面介 紹sql server 2000企業(yè)版在本地機上的安裝過程。1) 插入sql server 2000光盤,口動安裝程序啟動,屏幕上出現如圖2所示畫而, 按圖2所示選擇sql server 2000組件;2) 選擇安裝數據庫服務器,如圖3所示,進入sqlserv

3、er2000企業(yè)版安裝向導;圖2 sql server 2000安裝過程對話框圖3選擇sql server 2000安裝組件對話框進入用戶信息對話框;圖4選擇服務帳號對話框圖5身份驗證模式對話框3. sql server 2000 的工具1)服務管理器(servermanager)在進行任何數據庫操作前,都必須啟動服務 器,server manager nj'以方便啟動、停止、暫停本 地或遠程服務器。圖6是打開的server manager 窗口。適當配置窗口中的選項,點擊“啟動”按 鈕即可啟動sql server服務器。sql server 2000 安裝以后,每次開機時,windo

4、ws都會口動啟動 服務管理器。在任務欄上有一個圖標表示服務管 理器的狀態(tài)。如圖7所示。3d sql server巌務管理器服務器辺:服務®:ii |暫停e) i停止©)v當啟動fs時自動啟動服務) 正在運行二vxlp=mssqlser就圖 6 server manager 窗 i i圖7服務管理器件仟芻樺中的狀杰2) sql server 2000 企業(yè)管理器(enterprise mamager)企業(yè)管理器的啟動3)在安裝向導對話框中點擊下一步,進入計算機名對話框;4)選擇本地安裝,點擊下一步,進入安裝選擇對話框;5)選擇創(chuàng)建新的sql server實例,點擊下一步,6)

5、輸入用戶信息,點擊下一步,進入安裝定義 對話框;7)選擇服務器和客戶端工具,點擊下一步,進 入實例名對話框;8)輸入實例名,點擊下一步,進入安裝類型選 擇對話框;9)選擇典型安裝,進入服務帳號設置對話框, 如圖4所示;10)選擇對每一個用戶使用同一個帳號,自動啟 動服務器,點擊下一步,進入選擇身份驗證模式選擇 對話框,如圖5所示;11)選擇windows身份驗證模式。點擊下一步, 進入開始復制文件對話框,點擊下一步,進入選擇許 可模式對話框,選擇處理器許可證,點擊繼續(xù),開始 復制文件。12)文件復制完畢后,進入安裝完畢對話框,點 擊完成。系統(tǒng)安裝完畢。進入 sql server2000 的企業(yè)

6、管理器從 program > sql server -> enterprisemanager,圖8為企業(yè)管理 器界而。企業(yè)管理器是dba 管理數據庫的重要工具,使 用 enterprise manager 可以 管理用戶賬號、登錄服務 器、備份和恢復數據庫、啟 動和停止sql server.創(chuàng)建 和竹理數據庫對象和任務、 處理訪問控制列表、檢查數 據庫的一致性等。其中數據 庫 master > model > msdb>圖8企業(yè)管理器tempdb是系統(tǒng)數據庫。pubs>northwind是sql server 口帶的樣木數據庫,其中有人量的test數據,可以

7、作為sql語言實驗的基礎數據。數據庫文件夾數據庫文件夾中顯示sql server服務器管理的所冇數據庫信 息。例如sql server提供的樣木數 據庫pubs的展開如圖9所示。每個 數據庫均由這些項冃來分別描述數 據庫的屬性。其中關系圖為sql server根據用八對數據庫的定義,自 動繪制的數據庫關系示意圖(e-r 圖)。圖10為pubs的關系圖,表示 出基木表之間的引用關系,參照完 整性定義的圖示化表示。圖9企業(yè)管理器屮的數據庫對象圖10 pubs的關系圖表為數據庫中包含的表的信息。表分為兩類, 一類為用戶創(chuàng)建的表,另一類為系統(tǒng)創(chuàng)建的表。 用戶表由用戶使用ddl語言創(chuàng)建,系統(tǒng)表存放 db

8、ms對用戶數據庫的管理信息。其它對象包含 了與當前數據庫有關的信息。3) sql server 2000 杳詢分析器(query analyzer)査詢分析器是一個重要工具,實驗中的所 有sql語言命令均需在查詢分析器中輸入、編 輯運行。從 program > sql server > query analyzer nj以打開查詢分析器,如圖11所示。 它是一個多文檔程序,在其上可以同時打開多個 杳詢程序(窗口),在杳詢分析器的工具欄屮的 綠色按鈕為執(zhí)行當前窗口屮sql語句按鈕。 點擊它即可逐行執(zhí)行。圖11查詢分析器二.ddl使用方法transact-sql是sql server內

9、置的sql語言,它支持標準sql語言,但在許多方面進 行了擴充,其定義能力更為強大。transact-sql對使用microsoft® sql server"非常重 耍。與sql server通訊的所有應用程序都通過向服務器發(fā)送transact-sql語句來進行 通訊,而與應用程序的用戶界面無關。在此我們不對transact-sql的語法作詳細介紹, 大家對以參考查詢分析器中提供的幫助。1. 數據庫創(chuàng)建在查詢分析器中執(zhí)行下列語句即可在默認的設備上創(chuàng)建新的數據庫emsocreate database database_name例1:創(chuàng)建名為ems的數據庫:create dat

10、abase ems文件(e)編輯(b查詢(q)工具(d窗口(妙幫助(tl)«« sql查誼分析器/執(zhí)行''、按鈕/當前數、 據庫 >sql、語句' i"查誨xlp.pubs.xl叭admin礙懇豈處嶼create database進程正在磁蠱 飛皿上分配0.75 mb的空間。t:reate database進程正在磁盤ems.log上分配0.49 mb的空間。顯示窗口這是一個簡單的人事管理數據棄。本例中的所用數據庫對彖均為ems建立。執(zhí)行結 果如圖12所示。2. 基本表的建立創(chuàng)建基本表的命令為:create table table.n

11、ame,在該命令中定義主碼和外碼時, 可以使用列約束(column constraint)或表約束(table constraint)子句。例2:在cms中創(chuàng)建employee (職員)表和dept (部門)表:employee (eno, ename, manager, salary, depmo); 主碼:eno 夕mi馬:managerdeptno dept (deptno > dname, location) 主碼:deptno注:employee中的manager為相應雇員的直接領導或上司的eno。創(chuàng)建基木表時,應先選擇包含表的數據庫,木例屮選擇當前數據庫為emso杳詢分 析器

12、啟動時的當前數據庫為pubs,如圖12所示。改變當前數據庫可以宜接點擊當前數據 庫列表框,選屮所需數據庫,也可使用use dalabasename命令。圖13為使用sql建 表命令創(chuàng)建上述基木表的源代碼。在查詢分析器屮輸入該代碼,點擊執(zhí)行按鈕即可。use ems;廠 columngocreate tabic dcpt(dcptno char(3) primary kconstraint、deptname char(20) not null, location char(20);create table employee (eno char(4), ename char(10) not null

13、, manager char(4), salary int,xieptno char(3), i primary key (eno).table constraint foreign key (managed references emdloyee(cno), lforeign kev (deptno) references clept(deptno):圖13 sql建表命令創(chuàng)建上述慕本表的源代碼3. 視圖的建立視圖是組成數據庫體系結構一一三級模式兩級映像結構中的外模式的基本單元, sql-server 的視圖定義命令為:create view view-name as select stat

14、ement視圖是用于定義終端用戶數據來源的。在視圖定義中對以使用復雜的select命令。 例3:在ems中定義能夠查詢雇員年薪的視圖annualsal和統(tǒng)計雇員卜屬人數的視圖 managero視圖定義為:annualsal (eno, ename, annualsal); annualsal 為相應雇員的年薪。 manager (manager, name, clerknum); clerknum 為相應廉員的肓接卜屬個數。 在杳詢分析器屮分別輸入如圖14所示的代碼,即可創(chuàng)建要求的視圖。use ems ;create view annualsal(eno,ename,annualsal) as

15、 select cno,cnamc,12*salaryfrom employeeuse ems;create view manager (manager,name,clerknum) as select c 1.manager,amc,c 1 .clcrknum from (select manager , count(*) as clerknum from employee group by manager having count(*)>0) e 1,employee e2 where el.manager = e2.eno圖14 :視圖定義源代碼其中:在視圖manager定義中的c

16、l為聯(lián)機視圖。三.dml使用方法sql的dml包括插入(insert)冊i除(delete)、修改(update)等命令。dml 命令的執(zhí)行是對能造成數據庫不一致的根源。因此,每一條語句在執(zhí)行前,sql-server 都耍驗證語句是否符合完整性要求,包括實體完整性、參照完整性、用戶定義完整性。1insert命令sql語言的插入命令:insert into table-name (colunin-list) values(values-list),可以完成數據輸入功能。 例4:在ems中的dept表中輸入表1中的數據;employee表中輸入表2中的數據。 圖15為數據輸入的源代碼。表1基本表d

17、ept的數據d01 computer schoolsouth 1-405d02 communication deptsouth 1-304d03 management schoolkejilou-408e01lunull8000d01e02yine017000d01e03xue012000d01e04que022000d01e05zaonull5000d02e06panae054000d02e07panbe053000d03表 2 基木表 employee的數據use ems;goinsert into dept values('d01 '/computer school

18、9;,'north 1 -405'); insert into dept values('d02','communication depf/notth1-304'); insert into dept values('d03',management school','kejilou-408');insert into employee values(,e01,'lu',null,8000 ,'d01');insert into employee values('e02

19、:'yin;'e01;7000,'d01');insert into employee values(,e03','xu'e01 ',2000,'do 1');insert into employee values('e04','qu',e022000,d01 *);insert into employee values(,e05,zao null,5000,'d02');insert into employee values(fe067pana ,'e054

20、000,'d02'); insert into employee values('e07*,'panb ,'e05,3000,'d03,);注意:在執(zhí)行過程中,如果冇一條語句出錯誤,再次執(zhí)行時,在出錯語旬前面的語 句就會被拒絕執(zhí)行。因為,在查詢分析器中的命令在執(zhí)行時按順序逐條執(zhí)行,當執(zhí)行到 出錯語句時停止執(zhí)行,此時,在出錯語句的前面各條語句的結果已經存入表中,故當重 復執(zhí)行吋,它們違反了實體完整性。例5:插入可能違反參照完整性的插入命令,驗證實體完整性檢驗規(guī)則。在查詢分析器中執(zhí)行如圖16所示的命令,系統(tǒng)將拒絕執(zhí)行。執(zhí)行結呆如圖17所示。use e

21、ms;goinsert into employee values('e10twu:'el 1 8000 /dop); insert into employee values(e02jyinte01 v7ooo,do5);圖16可能被拒絕的命令emsjnl2d«sql查誼分析畫文件(e)編輯(£)査詢(q)工鳳d宙口(妙幫助(出窗3121日|站察蔭冒何巾國-5/ |0川川查誼xlp.ems.xl叭adminbtrotor 無標goinsert into employee values ('e10','wu','el

22、9;, 8000,doi'):/*insert into employee values c e02*, * yin*, * e0t, 7000, * dob1):/*阪務殍:弓述547,級別16,狀態(tài)1,行1insert 語句與 column foreign key same table 約束 j fkemployeemanage20cle124, :中生于數握庫 ejis*, 表 employee', coluan ' eno* o息2627,舉別14,狀態(tài)1,行1違反了 primary key約束* pkemployee. 1ed998b2'。不能在對象*

23、 employee*中插入重復鍵。 語句己終止。圖17執(zhí)行被拒絕命令的結果顯示圖2delete命令sql 的刪除命令為:delete from table-name where condition-expression;執(zhí)行delete命令后,系統(tǒng)會刪除滿足命令中條件表達式的所有元組。這種刪除 只是邏輯的。因此,當再次插入一個與被刪除的元組具有相同關鍵字的元組時,被認為 違反了實體完整性。例6:刪除姓名二panb'的紀錄。在查詢分析器中輸入并執(zhí)行如圖18所示的代 碼即可完成要求的刪除操作。刪除操作可能會引起參照完整性的破壞,對于這些操作系統(tǒng)會根據完整性定義執(zhí)行 或拒絕執(zhí)行。例如:在沒有

24、刪除panb紀錄前,試圖刪除他所在的部門的操作就會引起 系統(tǒng)的警告,并拒絕執(zhí)行該操作。use ems;godelete from employee where ename=,panb,;圖18刪除記錄panb的代碼3update命令sql的修改命令為:update table-nameset column-name = expressionwhere condition-expression;執(zhí)行update命令后,系統(tǒng)會按照set子句修改滿足命令中條件表達式的所有元 組。如果使用修改命令更新關鍵字的值,陽該關鍵字在其他表中作為外碼存在時,操作 可能違反參照完報性。系統(tǒng)將拒絕執(zhí)行。例7:將表e

25、mployee屮所有人的salary增加1()%。update employeeset salary = salary* 1.1;例8:將eno=,eor的eno更新為,e0(t。該操作結果如圖18所示:update employeeset eno =,e()()'where eno=e0r;圖19例8的執(zhí)行結果四select命令select命令是sql語言中使用最頻繁的命令,其變化形式繁多,靈活運用select 命令町以完成任意復朵的查詢耍求。select命令的基本語法為:select query_expressionlcolumn-listl*from table_namejist

26、lview_nameislwhere condition-expressionlgroup by having condition-expression order by order_expressionl column ascidesc,n;由于select命令非常復雜,上面的語法描述還無法完全表達,請參考transaction sql的幫助。從海量數據庫屮得到自己所希望看到的信息,是學習sql語言的重要任務。 下面只舉幾個典型例了。1. 簡單查詢例9:列ill ems中的所有員工的信息。select * from employee;2. 使用謂詞的査詢謂詞有in、like、null、exi

27、sts> between等,在査詢時where子句中 可以使用。例1():列出工資在2000-300() z間的所有員工的姓名及他們所在的部門號碼,將結果 按工資從高到低的順序排列。在杏詢分析器屮輸入并執(zhí)行圖20屮的代碼即可得到所要的 結果。select ename,salary,dept nofrom employeewhere salary between 2000 and 3000order by salaiy desc;圖20例10的檢索命令3. 連接查詢連接查詢通過表間的關聯(lián)字段實現相關查詢,連接查詢分為等值聯(lián)接查詢、不等值連 接查詢、外聯(lián)接查詢、口我連接查詢等。在書寫較為復雜

28、的查詢命令時,建議使用別名 來提高效率。例11:杏詢雇員pana所在的部門及其辦公地點;select e.deptnod.locationfrom employee e,dept dwhere e.deptno = d.deptno and e.ename = *pana'/*this is a equijoin*/圖21例11的連接査詢代碼例12:列數辦公地點在south 1的所有雇員名單;select eno,ename, e.deptnofrom employee c, dept dwhere e.deptno = d.dcptno and d.location like 

29、9;south 1 %;圖22例12的代碼例13:歹u出每個雇員的間接上司(manager的manager)的姓名。select el.eno, el.ename,e3.eno, e3.ename as manager_ollmanagerfrom employee el, employee e2 ,employee e3where e 1 manager = e2.eno and e2.manager = e3.eno圖23例13的代碼4. 復雜查詢例14:查詢部門d01中薪水介于部門d02的最高和最低值z間的雇員及他們的薪水。use ems;select eno,ename,salaryf

30、rom employeewhere (salary between (select min(salary)from employeewhere deptno=,d02,)and (select max(salary)from employeewhere deptno=,d02,)anddeptno=dor;圖24例14的代碼五.dcl的使用方法1. sql server登錄認證對任何用戶來說,數據庫的安全性都是至關重耍的。由于數據是而向所有合法用戶的,因此,對任何dbms,良好的用戶管理功能是確保數據庫安全性的重要保障。sql server2000的安全性建立在認證和訪問許町兩種機制上的。認證

31、機制確保登錄的用戶帳號和密碼是疋確的,通過認證的用戶獲得數 據庫的訪問授權后才能對服務器上的 數據進行授權許可下的各種操作。在 sql server 20(x)的安全模式屮包括: sql server登錄、數據庫用戶、權限、 角色等。sql server 2000有兩種安全 模式,即windows認證模式和混合 模式。windows模式只要求用戶通windows操作系統(tǒng)的認證。如果 用戶登錄sql server 2000時耒給出用 戶的登錄名,sql server 口動使用該 模式,在前而各種操作時均使用該模 式。混合認證模式下,可以使用 windows 認證或 sql server 認證。

32、使用sql server認證時,用戶在連接 sql server時必須提供登錄名和密 碼,這些登錄信息存放在系統(tǒng)表syslogins 屮,與操作系統(tǒng)無關。1) sql server認證模式的設置 在對登錄進行增加、刪除操作前,必 須設置sql server認證模式。設置步驟: 啟動企業(yè)管理器9選擇要進行認證模式 設置的服務器9右擊該服務器,在彈出菜 單中選擇屬性,彈出如圖25所示的對話 框,點擊安全性選擇欄,選擇身份驗證為 sql server和乂訊(lows (s丿選項。任選一 種審核級別,在啟動服務器帳戶選項中選 擇系統(tǒng)帳戶。點擊確定。確認設置。2d服務器設置1數據庫設置1復制active

33、 directory常規(guī)1內存1處理器安全性連接sql server 展性 c 配籃)-xlpsql server 根據 windows 帳p和已命名的 sql server g 錄ide密碼進行身份驗證安全性身份驗證:e jsql server 和 window©)僅 windowslw)審核級別:q 無(n)成功(u)啟動服務帳尸0丫在下面的嫌戶中啟動并運行sql server:本棟戶(i)密碼(:確定幫助|圖25 sol server認證模式的設置圖26新建甥陸對話框2)企業(yè)管理器管理登錄在sql server認證模式下可以新建登錄和管理登錄,其操作步驟如卜:啟動企業(yè)管 理器9

34、展開控制臺根冃錄,選擇安全性并展開9右擊登錄,在彈出菜單中選擇新建登錄, 彈出如圖26所示的對話框,在常規(guī)選擇欄中,輸入登錄用戶的信息,身份驗證選擇sql server驗證,并輸入密碼。選擇該登錄的數據庫,確認后點擊確定按鈕,新的登錄即創(chuàng) 建成功。3)transact_sql存儲過程管理登錄在sql server中,有一些存儲過程提供了管理sql server登錄的功能,使用他們可 以在查詢分析器中,用命令的方式管理登錄。包括:sp_grantlogin sp_revokelogin sp_decnylogin sp_addlogin sp_droplogin sp_helploginso新登

35、錄的創(chuàng)建use emsgoexec sp_addlogin qbb,qbb圖27創(chuàng)建登陸qbb的代碼新的登錄者町以是windows的用戶或用戶組,也 對以是使用sql server認證模式的登錄帳號,設定 windows的用戶為sql server登錄者時使用 sp_grantlogin0創(chuàng)建新的使用sql server認證模式的登錄帳號時使用sp_addloginso圖27是使用sp_addlogin創(chuàng)建使用sql server認證模式的 登錄'qbb'的代碼,在具有權限的sa登錄連接的查詢分析器中輸以下代碼即可創(chuàng)建一個 ems的登錄qbb用戶,該登錄的密碼為'qbb

36、'。登錄的刪除use emsgoexec sp_droplogin qbb圖28刪除登陸qbb的代碼刪除基丁使用sql server認證模式的sql server的登錄 對以使用sp_droplogino但是,如果與該登錄匹配的數據庫用 戶仍存在sysuser表中,則不能刪除該登錄賬號。刪除 windows的用戶或用戶組時,使用sp_revokelogin,拒絕 windows的用戶或用戶組連接到sql server時,使用 sp_decnylogin圖28為刪除了新建登錄bbb的代碼。 登陸的杏看use emsgoexec sp_hclplogins的信息。 代碼。圖29查看登陸的代

37、碼sp_helplogins可以用來顯示sql server的所有登錄者 如圖29是顯示數據庫ems的所有登錄者信息的2. 用戶管理1)用戶的概念在sql server中,數據庫用戶帳號與登錄帳號是兩個不同的概念,一個合法的登錄圖3()新建用戶對話框帳號,只表明該帳號通過r認證,但不表明英可以對數據庫進行操作,所以,一個登錄 帳號總是和一個或多個數據庫用戶帳號相對應,這樣才可以訪問數據庫。在系統(tǒng)初始安 裝時,系統(tǒng)自動與默認的用戶相關聯(lián),所以我們在前而的操作才能進行。例如,登錄帳 號sa自動與每一個用八dbo相關聯(lián)。這就是為什么我們先前建立的數據庫的所有者均為 dbo的原因。通常數據庫帳號總是與

38、某一個登錄帳號相關聯(lián)。但gues(例外,在安裝系統(tǒng) 吋,guest 用丿'"被加入到 masterpubs、tempdb> 和 northwind 中。這使初次使用 sql server 的用戶能夠訪問到sql server自帶的數據庫,并且對于沒有建立安全性防范機制的數據 庫,均可以使用該用戶來訪問。2)企業(yè)管理器管理數據庫用戶創(chuàng)建新數據庫用戶啟動企業(yè)管理器9展開控制臺 根目錄;打開數據庫文件夾9選擇要 創(chuàng)建用戶的數據庫(如本例中的 ems),右擊用戶,在彈出菜單中選擇 新建數據庫用戶,彈出如圖3()所示 的對話框,在常規(guī)選擇欄中,輸入登 錄名和用戶名。在數據庫角色成

39、員列 表框中選擇public,確認后點擊確定 按鈕,新的數據庫用戶即創(chuàng)建成功。查看、刪除數據庫用戶在sql server企業(yè)管理器中,選擇用戶圖標,則在右邊的窗格中顯示當前數據庫的 所用用戶,選擇關心的用戶,點擊右鍵即可查看用戶信息或刪除該用戶。3)transact_sql存儲過程管理數據庫用戶sqlserver利用卜列系統(tǒng)過程管理數據庫用戶:sp_adduser sp_grangdbaccess sp_dropuser sp_dropuser sp_revokedbaccess sp_helpuser。其h4 sp_adduser sp_dropuser是為了保持與以前版木相兼容,因此不主張

40、 使用,在 sql server 2000 中,建議使用 sp_grangdbaccess sp_revokedbaccess。創(chuàng)建新數據庫用戶所冇的數據庫用戶(除了 guest)均必須與某一 登錄賬號相匹配,因此在使用系統(tǒng)過程創(chuàng)建新數據庫 用戶時,不但要指出新數據庫用戶的名稱,還必須指 出一個已經存在的登錄賬號。系統(tǒng)過程 sp_grantdbaccess 用于為 sql server 登錄用八或 nt 用八或用八組建立相匹配的數據庫用八帳號。圖31use emsgo廠已存在、'j新建澄錄名用戶名tvexec sp_grantdbacccss qbbtqbb圖31創(chuàng)建新用戶的代碼是為數

41、據庫ems的登錄qbb創(chuàng)建了一個名稱為qbb的數據庫用八。use emsgoexec sp revokedbaccess 'qbb*刪除數據庫用八系統(tǒng)過程sp_rcvokcdbacccss用于將數據庫用戶 從當前數據庫中刪除,刪除后與其匹配的登錄即無法再訪問該數據庫了。圖32所示的代碼刪除了數據庫ems圖32刪除數據庫用戶的代碼 的用戶qbbouse emsgoexec sp_helpuser查看數據庫用戶信息 sp_helpuser可用來顯示當前數據庫的指定用戶信息。圖33為顯示數據庫ems用戶的代碼。在杳詢分析器 圖33顯示數據庫用戶的代碼 中輸入并執(zhí)行即可列出ems的所有用戶信息

42、。3. 用戶授權管理對于登錄到sql server的合法數據庫用戶,必須獲得對數據庫操作的授權。在sql server中包括兩種類型的權限,即對彖權限和語句權限。1)對象權限對彖權限總是針對表、視圖、存儲過程而言,它決定了能對這些對彖執(zhí)行哪些操作(如 update delete insert select execute)o不同類型的對彖支持不同類型的操 作,表3為各種對彖的對能操作列舉。表3 :對象權限總結表對象操作表select update delete insert reference視圖select update delete insert存儲過程execute列update sel

43、ect例15為ems的用戶'qbb'授予表employee查詢權限。use emsgogrant select on employee to qbb圖34為用戶授權的代碼圖35連接到服務器對話框以系統(tǒng)分析員身份進入杳詢分析器,輸入并執(zhí)行 如圖34的代碼。然后,在打開查詢分析器中文件下拉 菜單,點擊連接選項,在彈出菜單(如圖35)輸入qbb 的信息,新打開的窗口即為qbb用戶的窗口,在該窗 口中輸入并執(zhí)行select * from employee即 町得到查詢結果,此時若輸入select * from dept,可以發(fā)現語句被拒絕執(zhí)行。因為,qbb,沒有得depl 表得操作權限

44、。同樣,門j以使用 revoke select on employee frpm qbb命令川以收回qbb對employee的操作權 限。人家可以參考教材屮命令,對自己的數據庫的安全性進行全面管理。2)語句權限語句權限指數據庫用戶執(zhí)行某種語句的操作權,如創(chuàng)建數據卉、表、存儲過程等。這 些語句雖然(如create命令)包含有操作對彖,但這些對彖在操作前并不存在于數據 庫中。表4為所有權語句清單。農4語句權限總結農語句含義create dtatbase創(chuàng)建數據庫createtable創(chuàng)建表create view創(chuàng)建視圖create rule創(chuàng)建規(guī)則create default創(chuàng)建缺省create

45、procedure創(chuàng)建存儲過程backup database備份數據庫backuplog創(chuàng)建事務日志例16使用語句權限設置命令,授予用戶qbb在數據庫cms ±建立新表的權限。完成該 功能的代碼如圖36«use ems go grant create table to qbb圖36為用戶qbb授了創(chuàng)建基表的權限在sql server 2000中冇角色的概念,角色的設置可以降低權限管理的繁雜性,在大 的系統(tǒng)中,雖然冇很多數據庫用戶,但可以將這些用戶進行分類,每類定義一種角色, 只要對角色進行權限設置,就可以簡單竹理用戶了。角色的設置在此不贅述了。六. 游標的使用sql語言有兩

46、種使用方式,即交互式和恢入式。前而我們在查詢分析器中執(zhí)行的命 令均使用交互式方式。但是在應用程序開發(fā)時往往需耍在其他程序開發(fā)語言中使用恢入 式的sql命令處理數據庫中的數據,這時程序開發(fā)語言稱為主語言,sql語言稱為子語 言。由于主語言與sql語言處理數據的方式不同,因為關系數據庫的處理結果為集合, 而大多數程序開發(fā)語言使用記錄或線性處理。所以必須在兩者z間實現溝通,使集合數 據也可以一次一條記錄的處理。解決的辦法是使用游標。游標是一個很重要的概念,它 提供了一種對從表屮檢索結果進行操作手段。能從包括多條記錄的結果集屮每次提取一 條記錄。1游標的定義定義游標的命令為:declare curso

47、r_name insensitive scroll cursorfor select_statementfor read onlylupdatefofcolunin_name町選項insensitive表明游標的操作對應一個內部臨時表,在游標的生命周期內,對 慕本表的修改操作不影響游標的內容,即游標是靜態(tài)的。否則游標的內容將動態(tài)地與基表 保持一致??蛇x項scroll表示游標可以使用所有的提取操作,如first、last、prior、 relative> absolute等,否則只能使用next提取操作。read only表示游標內 的數據不允許更新。update ofcolumn.nam

48、e ,n定義在游標屮可以修改的列。2.游標的操作打開游標游標在定義以后,存儲在系統(tǒng)數據庫中,如杲從游標中讀取數據,則必須打開游標,打開游標的命令為:open globalcursor_name山于游標的作用域僅在其所在的批處理中,當建立游標的批處理文件執(zhí)行結束后,游 標會被自動釋放。因此在此打開操作前,要重新定義一次,因麗而定義的游標已經被釋 放。如果要保留游標的作用域,可以在定義吋指定其作用域為globalo否則為localo讀取游標中的數據當游標成功打開后,就可以從游標中逐行讀取數據。使用fetch命令。語法為:fetch nextipriorifirstilast from cursor

49、_namc into v_namc,.nfetch命令執(zhí)行后,變gfetch_status返回被fetch語句執(zhí)行后游標的狀態(tài)。 如表5所示。表5 fetch命令執(zhí)行示fetch status變量的值與狀態(tài)返回值描述0fetch語句成功。1fetch語句失敗或此行不在結果集中。2被提取的行不存在。游標的關閉與釋放在處理完游標中的數據后必須關閉游標釋放數據結果。使用close命令關閉游標, 但不釋放定義的數據機構,釋放數據機構應使用deallocate命令。語法分別為: close cursor_namedeallocate cursor_name例17定義一個游標,逐行顯示employee &

50、#171;中的信息。對游標進行操作,最后關閉 游標。在查詢分析器中輸入并執(zhí)行圖37所示的代碼即可完成要求。use ems;godeclare cursor_emp cursor global for select * from employee for read only; /* 定義游標*/ declare v_cno varchar(40), v_cnamc varchar(lo),v_manager varchar(40), v_salary int, v_deptno varchar(30); /* 定義變量*/ open cursor_emp; /* 打開游標*/f0t丫丫 *7 r

51、jw *jw rjwrjw rjw 丫*jw rjw 99 rjw rjw rjwrjw *jw rjwr|w rjw丫.fetch next from cursor_emp into v_cno, v_cnamc, v_manager, v_salary, v_deptno; /* 從游標中讀収數據*/ while fetch_status = 0/*循壞處理從游標屮讀取的數據*/begin/*select v_eno, v_ename, v_manager, v_salary, v_deptno; */ print v_cno + v_cnamc + v_managcr;fetch nex

52、t from cursor_empinto v_eno, v_ename, v_manager, v_salary, v_deptno;endclose global cursor_cmp;deallocate global cursor_emp;圖37例17的代碼七. 數據庫的備份和恢復備份是指對sql server數據庫或事務日志進行拷貝,如果數據庫因意外血損壞, 備份文件可以用來恢復數據庫。sql server 2000中有四種備份類型,分別是:數據庫備 份、事務日志備份、差界備份、文件和文件組備份。在使用是對以根據實際情況選擇一 種或幾種的混合應用。1.備份設備在進行備份以前必須創(chuàng)建備

53、份設備。備份設備是用來存儲數據庫、事務日志、文件 和文件組備份的存儲介質。對以是磁盤、磁帶或管道。1)用企業(yè)管理器管理備份設備創(chuàng)建備份設備圖38創(chuàng)建備份設備對話框啟動企業(yè)管理器,登錄到要增加備份設備 的服務器,打開管理文件夾,右擊備份,在彈 出菜單中選擇新建備份設備選項,彈出備份設 備屬性一新設備對話框,如圖38所示。在名 稱欄中輸入設備的名稱,選擇設備類型,可以選擇磁盤、磁帶或管道,如果選擇文件名,則表示使用磁盤做備份,輸入文件名后,點 擊確定按鈕,新的備份設備即可創(chuàng)建。由于軟盤的容雖小不適合作為備份設備,通常都 選擇喚盤,但在本此實習中,由于數據庫cms的數據很少,也可以將a:盤作為備份設

54、 備。刪除備份設備在創(chuàng)建備份設備的第二步,選中備份圖標后,在右窗格對話框中右擊要刪除的備份設 備,在彈出菜單中選擇刪除選項,即可刪除該備份設備。2)用系統(tǒng)存儲過程管理備份設備 sp_addumpdevice (創(chuàng)建備份設備)。例:為數據庫ems創(chuàng)建一個邏輯use ems設備名為 emss 設備的實際名 exec sp_addumpdcvicc 'disk','emss', 'd:backupdevems.bak'稱為 c:backupdevems.bak 的備 份設備。代碼如圖39所示。 sp_dropdevice(刪除備份設備) 例:將數據庫e

55、ms的邏輯設備emss,刪去。 碼如圖40所示2 數據庫備份圖39創(chuàng)建備份設備emssuse emsexec sp_dropdevice 'emss'圖40刪除備份設備emss圖41創(chuàng)建sql server備份對話框sql server 2000捉供了兩種創(chuàng)建備份的途徑,即町視化方式和命令方式。1)用企業(yè)管理器管理備份啟動企業(yè)管理器,登錄到要增加 備份設備的服務器,打開數據庫文件夾,右 擊要進行備份的數據庫圖標,在彈出菜單中 選擇所有任務選項,再選擇備份數據庫,彈 岀sql server備份對話框,如圖41所示。 在常規(guī)頁中的備份選項欄中選擇備份類型, 單擊添加按鈕選擇備份設備

56、,彈出如圖42 所示對話框,在此口j以選擇文件名或備份設 備。在重寫選項欄,若選擇追加到媒體,則 將備份內容添加到當前備份z后,若選擇重 寫現有設備,則將原備份覆蓋。(在調度復 選框,可對備份的時間表進行設置)。s所冇 設置完成后,點擊確定按鈕即可開始備份。圖42選擇設備對話框2)用命令備份數據庫 使用backup命令進行備份操作。 備份完整數據庫例18將數據庫ems完全備份到設備 backupdevice_ems上。在驅動器d上建立 backupdev子冃錄,并執(zhí)行如圖43所示的代碼, 即可將數據庫ems備份到指定的設備上,圖中 的第行是創(chuàng)建備份設備的命令,如果該設備已經存在,則將其注解掉。

57、use ems/* exec sp_addumpdevice *disk','backupdevice_ems', 'd:backupdevems.bak'*/ backup database ems to backupdevice_ems圖43創(chuàng)建數據庫備份 備份事務日志use emsbackup log ems to backupdevice_ems圖44創(chuàng)建數據庫日志備份例:將數據庫ems的日志備份到設備backupdevice_ems上。執(zhí)行如圖44所示的代 碼,即可將數據庫ems備份到指定的設備 上,備份的日志與其他備份組織成一個文 件,所以,你在資源管理器中看到在 backupdev卜只有一個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論