第一篇:GCSJK實(shí)驗(yàn)安排工程數(shù)據(jù)庫實(shí)驗(yàn)報告
工程數(shù)據(jù)庫設(shè)計與應(yīng)用
實(shí)驗(yàn)報告
實(shí)驗(yàn)一
創(chuàng)建數(shù)據(jù)庫的基本操作
學(xué)號:
1030413529
班級:
計科1305 姓名: 游思睿 成績
指導(dǎo)教師:戴月明
一、實(shí)驗(yàn)?zāi)康?/p>
通過實(shí)驗(yàn)熟練掌握創(chuàng)建數(shù)據(jù)庫的方法,掌握如何建表、添加、刪除、更新、查詢表中數(shù)據(jù)的方法,及創(chuàng)建和使用視圖的方法。
二、實(shí)驗(yàn)內(nèi)容
1、創(chuàng)建一個新的數(shù)據(jù)庫。
2、建立一些新表,并對其作添加、刪除、更新和查詢記錄的操作。
3、創(chuàng)建視圖,并學(xué)會使用視圖。
三、實(shí)驗(yàn)完成情況
四、心得體會
通過實(shí)驗(yàn)熟練掌握創(chuàng)建數(shù)據(jù)庫的方法,掌握如何建表、添加、刪除、更新、查詢表中數(shù)據(jù)的方法,及創(chuàng)建和使用視圖的方法。
工程數(shù)據(jù)庫設(shè)計與應(yīng)用
實(shí)驗(yàn)報告
實(shí)驗(yàn)二
創(chuàng)建過程的基本操作
學(xué)號:
1030413529
班級:
計科1305 姓名: 游思睿 成績
指導(dǎo)教師:戴月明
一、實(shí)驗(yàn)?zāi)康?/p>
通過實(shí)驗(yàn)熟練掌握創(chuàng)建過程的方法,掌握如何新建過程、修改及調(diào)用過程的方法。
二、實(shí)驗(yàn)內(nèi)容
1、創(chuàng)建一個分頁查詢的過程。
2、建立一些新表,并對其添加記錄后再調(diào)用過程的操作。
三、實(shí)驗(yàn)完成情況
1.建立的新表
2.分3行為一頁查詢第2頁內(nèi)容
四、心得體會
通過實(shí)驗(yàn)熟練掌握創(chuàng)建過程的方法,掌握如何新建過程、修改及調(diào)用過程的方法。
工程數(shù)據(jù)庫設(shè)計與應(yīng)用
實(shí)驗(yàn)報告
實(shí)驗(yàn)三
創(chuàng)建函數(shù)的基本操作
學(xué)號:
1030413529
班級:
計科1305 姓名: 游思睿 成績
指導(dǎo)教師:戴月明
一、實(shí)驗(yàn)?zāi)康?/p>
通過實(shí)驗(yàn)熟練掌握創(chuàng)建函數(shù)的方法,掌握如何新建函數(shù)、修改及調(diào)用函數(shù)的方法。
二、實(shí)驗(yàn)內(nèi)容
1、創(chuàng)建一個新的函數(shù),用于查詢滿足一定條件的(1)記錄數(shù)、(2)記錄。
2、建立一些新表,并對其添加記錄后再調(diào)用函數(shù)的操作。
三、實(shí)驗(yàn)完成情況
四、心得體會
通過實(shí)驗(yàn)熟練掌握創(chuàng)建函數(shù)的方法,掌握如何新建函數(shù)、修改及調(diào)用函數(shù)的方法。
工程數(shù)據(jù)庫設(shè)計與應(yīng)用
實(shí)驗(yàn)報告
實(shí)驗(yàn)四
創(chuàng)建觸發(fā)器的基本操作
學(xué)號:
1030413529
班級:
計科1305 姓名: 游思睿 成績
指導(dǎo)教師:戴月明
一、實(shí)驗(yàn)?zāi)康?/p>
通過實(shí)驗(yàn)熟練掌握創(chuàng)建觸發(fā)器的方法,掌握如何新建觸發(fā)器、修改及使用觸發(fā)器的方法。
二、實(shí)驗(yàn)內(nèi)容
1、創(chuàng)建一個觸發(fā)器:修改學(xué)生表里的姓名,同步更新成績表里的姓名。
2、創(chuàng)建第二個觸發(fā)器:刪除學(xué)生表中的某個學(xué)生,同步刪除成績里的該學(xué)生的成績記錄。
三、實(shí)驗(yàn)完成情況
四、心得體會
通過實(shí)驗(yàn)熟練掌握創(chuàng)建觸發(fā)器的方法,掌握如何新建觸發(fā)器、修改及使用觸發(fā)器的方法。
工程數(shù)據(jù)庫設(shè)計與應(yīng)用
實(shí)驗(yàn)報告
實(shí)驗(yàn)五
數(shù)據(jù)庫應(yīng)用的基本操作之一
學(xué)號:
1030413529
班級:
計科1305 姓名: 游思睿 成績
指導(dǎo)教師:戴月明
一、實(shí)驗(yàn)?zāi)康?/p>
通過實(shí)驗(yàn)熟練掌握調(diào)用數(shù)據(jù)庫的方法,掌握如何通過鏈接字調(diào)用數(shù)據(jù)庫的方法。
二、實(shí)驗(yàn)內(nèi)容
1、創(chuàng)建一個新的數(shù)據(jù)庫鏈接字。
2、建立一個新的窗體,在窗體上使用控件來對數(shù)據(jù)庫進(jìn)行相應(yīng)操作。
三、實(shí)驗(yàn)完成情況
四、心得體會
通過實(shí)驗(yàn)熟練掌握調(diào)用數(shù)據(jù)庫的方法,掌握如何通過鏈接字調(diào)用
工程數(shù)據(jù)庫設(shè)計與應(yīng)用
實(shí)驗(yàn)報告
實(shí)驗(yàn)六
數(shù)據(jù)庫應(yīng)用的基本操作之二
學(xué)號:
1030413529
班級:
計科1305 姓名: 游思睿 成績
指導(dǎo)教師:戴月明
一、實(shí)驗(yàn)?zāi)康?/p>
通過實(shí)驗(yàn)熟練掌握數(shù)據(jù)庫備份魚恢復(fù)的方法。
二、實(shí)驗(yàn)內(nèi)容
1、創(chuàng)建一個數(shù)據(jù)庫進(jìn)行備份(完全備份、差異備份)。
2、對備份的數(shù)據(jù)庫進(jìn)行恢復(fù)。
三、實(shí)驗(yàn)完成情況
1、創(chuàng)建一個叫DBTest的數(shù)據(jù)庫,創(chuàng)建一張叫sd的表,這個時候進(jìn)行一次完整備份,備份文件為:DBTest-full.bak;接著創(chuàng)建表sg后進(jìn)行差異備份,備份文件為:DBTest-diff.bak;
2、創(chuàng)建一個叫DBTest2的數(shù)據(jù)庫,用于測試TestBackup數(shù)據(jù)庫的備份文件的還原。
3、數(shù)據(jù)庫差異備份文件還原:
步驟一:還原完整備份文件DBTest-full.bak,恢復(fù)狀態(tài)選項(xiàng):不對數(shù)據(jù)庫執(zhí)行任何操作,不回滾未提交的事務(wù)??梢赃€原其他事務(wù)日志。(RESTORE WITH NORECOVERY)
然后確定就可以了。這樣就可以接著還原差異備份了。(注:只要還要還原,就一定要選擇”不對數(shù)據(jù)庫執(zhí)行任何操作,不回滾未提交的事務(wù)??梢赃€原其他事務(wù)日志“,否則還原差異備份或日志備份就會出現(xiàn)以上的錯誤。)
還原成功后數(shù)據(jù)列表就會如下圖所示:
步驟二:還原差異備份文件
TestBackupDB-diff.bak,操作按正在還原步驟即可,恢復(fù)狀態(tài)選項(xiàng):回滾未提交的事務(wù),使數(shù)據(jù)庫處于可以使用狀態(tài)。無法還原其他事務(wù)日志(L)。(RESTORE WITH RECOVERY)。
四、心得體會
通過實(shí)驗(yàn)熟練掌握數(shù)據(jù)庫備份魚恢復(fù)的方法。
第二篇:數(shù)據(jù)庫實(shí)驗(yàn)2實(shí)驗(yàn)報告 2
數(shù)據(jù)庫第二次試驗(yàn)報告
PB10011020 劉思軼
實(shí)驗(yàn)內(nèi)容
本實(shí)驗(yàn)有兩個可選題目,旅游出行和藥品免疫庫。本程序即為旅游出行的一個實(shí)現(xiàn)。
實(shí)驗(yàn)原題摘要如下 數(shù)據(jù)關(guān)系模式:
航班FLIGHTS(String flightNum, int price, int numSeats, int numAvail, String FromCity, StringArivCity);
賓館房間HOTELS(String location, int price, int numRooms, int numAvail); 出租車CARS(String location, int price, int numCars, int numAvail); 客戶CUSTOMERS(String custName);
預(yù)訂情況RESERVATIONS(String resvKey, String custName, int resvType)系統(tǒng)基本功能:
1.航班,出租車,賓館房間和客戶基礎(chǔ)數(shù)據(jù)的入庫,更新(表中的屬性也可以根據(jù)你的需要添加)。
2.預(yù)定航班,出租車,賓館房間。
3.查詢航班,出租車,賓館房間,客戶和預(yù)訂信息。4.查詢某個客戶的旅行線路。5.檢查預(yù)定線路的完整性。6.其他任意你愿意加上的功能。
程序功能
本系統(tǒng)由旅行服務(wù)提供商運(yùn)營,發(fā)布在支持PHP + MySQL 的服務(wù)器上。系統(tǒng)默認(rèn)有三個角色,游客、用戶和管理員。它們的權(quán)限如下
1、游客
查詢當(dāng)前航班、旅館和出租車的預(yù)訂情況;
2、注冊用戶
游客的所用權(quán)限; 查詢當(dāng)前預(yù)訂;
預(yù)訂航班、旅館和出租車; 退訂航班、旅館和出租車。打印旅行路線
檢查預(yù)定路線的完整性。檢查航班的完備性
3、管理員
注冊用戶的所用權(quán)限 添加航班、旅館和出租車信息; 更改航班、旅館和出租車信息; 注冊用戶;
更改用戶密碼和權(quán)限; 刪除注冊用戶; 查詢用戶預(yù)訂; 取消用戶預(yù)訂; 查詢用戶旅行線路。
運(yùn)行平臺
本系統(tǒng)在Windows 7 32位 下由PHP-now虛擬的網(wǎng)絡(luò)運(yùn)行平臺上測試.所需環(huán)境為: PHP Apache MySQL PhmyAdmin 環(huán)境搭建
打開集成環(huán)境php-now文件夾,點(diǎn)擊init.cmd,會自動安裝所需環(huán)境 接著在PHP后臺中載入所需要的表
CREATE TABLE FLIGHTS(flightNum varchar(30), price int(6), numSeats int(6), numAvail int(6), FromCity varchar(30), ArivCity varchar(30), PRIMARY KEY(flightNum));CREATE TABLE HOTELS(location varchar(30), price int(6), numRooms int(6), numAvail int(6), PRIMARY KEY(location));CREATE TABLE CARS(location varchar(30), price int(6), numCars int(6), numAvail int(6), PRIMARY KEY(location));CREATE TABLE CUSTOMERS(custName varchar(30), password varchar(50), type varchar(20), PRIMARY KEY(custName));CREATE TABLE RESERVATIONS(resvKey int(20)AUTO_INCREMENT, custName varchar(30), resvType varchar(20), detail varchar(20), PRIMARY KEY(resvKey));
該程序所實(shí)現(xiàn)的功能
1.登錄功能
登陸者身份分為游客和管理員,在數(shù)據(jù)庫中信息都存放在customer表中,區(qū)別為type項(xiàng)不同,管理員為admin,游客為users,決定了權(quán)限不同.(1)普通游客登錄后界面
(2)管理員登陸后界面
2.查詢功能
登入http://127.0.0.1 可以選擇查詢航班,旅館和出租車.3.游客-預(yù)訂功能
4.游客-管理預(yù)訂信息功能
點(diǎn)擊自己的id可進(jìn)入該功能頁面,可以看到自己的旅游路線和預(yù)訂信息,并可以取消預(yù)訂.5.游客-檢查線路完整性功能
當(dāng)游客預(yù)訂了從A到B的機(jī)票,則必須檢查啊在A定了車(去機(jī)場),在B訂了車和旅館(下飛機(jī)后坐車和住宿),以此實(shí)現(xiàn)完整性檢查.在從nanjing to beijing的旅游路線后面點(diǎn)擊check,會提示游客還需要在nanjing預(yù)訂汽車,在beijing預(yù)定旅館。
6.管理員-管理航班,旅館和出租車表
可以有insert delete 和update 幾種操作.delete:
直接點(diǎn)擊cancel就可刪除相應(yīng)的信息。insert & update: 點(diǎn)擊edit后,程序會自動將想要編輯的行的信息填入供管理員編輯,不用再手動輸入。
7.管理員-管理用戶表
可以添加新用戶,對用戶的權(quán)限升級,查看用戶信息.用戶的密碼是md5加密保存的。
實(shí)驗(yàn)小結(jié)
仍然存在的問題: 1.軟件界面過于簡單,僅僅實(shí)現(xiàn)了功能沒有在用戶可用性上多做考慮。
2.新用戶想要登錄該系統(tǒng)預(yù)訂必須要由管理員登入信息后才可操作。缺少了游客注冊的功能。
3.不能根據(jù)用戶的需求點(diǎn)對點(diǎn)得查詢相應(yīng)信息,只能羅列出所有的信息。
實(shí)驗(yàn)心得: 1.在搭建PHP環(huán)境中遇到了許多問題:如用戶權(quán)限不夠,域名已使用使得Apache-20安裝不成功,通過網(wǎng)上查閱資料解決問題。
2.了解到自己對問題的調(diào)研還是不足,如旅游系統(tǒng),各種表之間到底應(yīng)該怎么建立關(guān)系,哪些項(xiàng)是主鍵,自己建的表中的信息是否已經(jīng)充足了,參照現(xiàn)實(shí)中旅游系統(tǒng)才能不斷完善.
第三篇:數(shù)據(jù)庫實(shí)驗(yàn)報告(實(shí)驗(yàn)六)
實(shí)驗(yàn)
六
SQL語言數(shù)據(jù)查詢語言DQL
一、實(shí)驗(yàn)內(nèi)容
了解SQL語言的SELECT語句對數(shù)據(jù)的查詢,學(xué)會在Navicat for MySQL中用SELECT語句對表中的數(shù)據(jù)進(jìn)行簡單查詢、連接查詢、嵌套查詢和組合查詢。
啟動Navicat for MySQL,用SELECT語句進(jìn)行簡單查詢操作,具體實(shí)驗(yàn)步驟如下:(實(shí)驗(yàn)步驟里的內(nèi)容)
1啟動Navicat for MySQL,登錄到本地數(shù)據(jù)庫服務(wù)器后,連接到test數(shù)據(jù)庫上。用Create Table建立Student表、Course表和Choose表:
2.用INSERT語句分別向Student表中插入3個元組、Course表中插入3個元組、Choose表中插入7個元組:
3.用SELECT語句,查詢計算機(jī)學(xué)院學(xué)生的學(xué)號和姓名。
4.用SELECT語句的between?and?表示查詢條件,查詢年齡在20~23歲的學(xué)生信息。
5.用SELECT語句的COUNT()聚集函數(shù),統(tǒng)計Student表中學(xué)生總?cè)藬?shù)。
6.分別用SELECT語句的max()、min()、sum()、avg()四個聚集函數(shù),計算Choose表中C1課程的最高分、最低分、總分、平均分。
7.用SELECT語句對空值(NULL)的判斷條件,查詢Course表中先修課稱編號為空值的課程編號和課程名稱。
8.用SELECT語句的連接查詢,查詢學(xué)生的學(xué)號、姓名、選修的課程名及成績。
9.用SELECT的存在量詞EXISTS,查詢與“張三”在同一個學(xué)院學(xué)習(xí)的學(xué)生信息。
10.用SELECT語句的嵌套查詢,查詢選修C1課程的成績低于“張三”的學(xué)生的學(xué)號和成績。
11.用SELECT語句的組合查詢(UNION),查詢選修了C1課程或者選修了C3課程的學(xué)生學(xué)號。
12.用SELECT語句的組合查詢(UNION)與DISTINCT短語,查詢選修了C1課程或者選修了C3課程的學(xué)生學(xué)號,并取消重復(fù)的數(shù)據(jù)。
二、遇到的問題及解決
該實(shí)驗(yàn)中,由于對SQL中語句的不熟悉,多次導(dǎo)致了輸入錯誤,得不到實(shí)驗(yàn)結(jié)果,對存在量詞EXISTS陌生,不熟悉,導(dǎo)致實(shí)驗(yàn)步驟中的13小題無法根據(jù)題目要求完成,要對書本上的知識加以熟悉。
三、心得體會
在實(shí)驗(yàn)過程中,要獨(dú)立思考、獨(dú)立完成實(shí)驗(yàn)任務(wù),不懂的要虛心向教師或同學(xué)請教,這樣自己才會學(xué)到真的東西,對自己有所提升,并且可以為專業(yè)課程有所幫助。
第四篇:數(shù)據(jù)庫上機(jī)實(shí)驗(yàn)8實(shí)驗(yàn)報告
上機(jī)實(shí)驗(yàn)八——完整性約束的實(shí)現(xiàn)
一、實(shí)習(xí)目的:
掌握SQL中實(shí)現(xiàn)數(shù)據(jù)完整性的方法,加深理解關(guān)系數(shù)據(jù)模型的三類完整性約束。
二、實(shí)習(xí)準(zhǔn)備:
1.復(fù)習(xí)“完整性約束SQL定義”
2.完成習(xí)題四第10題中的各項(xiàng)操作的SQL語句。
3.了解SQL Server 中實(shí)體完整性、參照完整性和用戶自定義完整性的實(shí)現(xiàn)手段
三、實(shí)習(xí)內(nèi)容:
1.驗(yàn)證習(xí)題四第10題四個表結(jié)構(gòu)的SQL語句。
表一:Sstudent CREATE TABLE Sstudent(Sno char(7)NOT NULL PRIMARY KEY, Sname VarChar(20)NOT NULL, Ssex Char(2)NOT NULL DEFAULT('男')check(Ssex IN('男','女')), Sage smallint check(Sage >14 AND Sage<65), Clno Char(5)NOT NULL REFERENCES Cclass(Clno)ON UPDATE CASCADE);
表二:Ccourse CREATE TABLE Ccourse(Cno Char(1)NOT NULL PRIMARY KEY, Cname VarChar(20)NOT NULL, Credit Smallint CHECK(Credit IN(1,2,3,4,5,6)));
表三:Cclass CREATE TABLE Cclass(Clno Char(5)NOT NULL PRIMARY KEY, Speciality VarChar(20)NOT NULL, Inyear Char(4)NOT NULL, Number Integer CHECK(Number>1 AND Number<100), Mointor Char(7)REFERENCES Student(Sno));
表四:Ggrade CREATE TABLE Ggrade(Sno Char(7)NOT NULL REFERENCES Student(Sno)ON DELETE CASCADE ON UPDATE CASCADE, Cno Char(1)NOT NULL REFERENCES Course(Cno)ON DELETE CASCADE ON UPDATE CASCADE, Gmark Numeric(4,1)CHECK(Gmark>0 AND Gmark<100), PRIMARY KEY(Sno,Cno));
2.SQL Server中提供了那些方法實(shí)現(xiàn)實(shí)體完整性、參照完整體和用戶自定義完整性
答:實(shí)體完整性:是通過主碼的定義(PRIMARY KEY)來實(shí)現(xiàn)的;
參照完整性:是利用外部碼(REFERENCES)的說明,以限制相關(guān)表中某些屬性的取值,當(dāng)用戶違反規(guī)則時,提供三種:RESTRICT(限制策略),CASCADE(級聯(lián)策略),SET NULL(置空策略);
用戶自定義完整性:check約束,對元組的CHECK約束
第五篇:實(shí)驗(yàn)三 數(shù)據(jù)庫安全性實(shí)驗(yàn)報告
一 實(shí)驗(yàn)?zāi)康?.熟悉通過SQL語句對數(shù)據(jù)進(jìn)行安全性控制;
2.針對具體應(yīng)用要求,完成授權(quán)和收回權(quán)限的操作;
二 實(shí)驗(yàn)工具SQL Server 2005
利用SQL Server 2005 SSMS及其SQL查詢編輯器。
三 實(shí)驗(yàn)內(nèi)容和要求
使用SQL對數(shù)據(jù)進(jìn)行安全性控制,包括:授權(quán)和權(quán)力回收。操作完成后看看已授權(quán)的用戶是否真正具有授予的數(shù)據(jù)操作的權(quán)力了;權(quán)力收回操作之后的用戶是否確實(shí)喪失了收回的數(shù)據(jù)操作的權(quán)力。根據(jù)以上要求認(rèn)真填寫實(shí)驗(yàn)報告,記錄所有的實(shí)驗(yàn)用例。具體操作可以參照課件中的實(shí)例。
具體操作內(nèi)容:
創(chuàng)建以下兩個關(guān)系模式,并分別插入相應(yīng)的數(shù)據(jù)。
職工(職工號,姓名,年齡,職務(wù),工資,部門號)
部門(部門號,名稱,經(jīng)理名,地址,電話號碼)
(1)請用SQL的Grant和Revoke語句(加上視圖機(jī)制)完成以下授權(quán)定義或存取控制功能,并進(jìn)行相應(yīng)的安全性測試;
(a)用戶王明對兩個表有select權(quán)力;
(b)用戶李勇對兩個表有insert和delete權(quán)力;
(c)每個職工只對自己的記錄有select權(quán)力;
(d)用戶劉星對職工表有select權(quán)力,對工資字段具有更新權(quán)力;
(e)用戶張新具有修改這兩個表的結(jié)構(gòu)的權(quán)力;
(f)用戶周平具有對兩個表所有權(quán)力(對,插,改,刪數(shù)據(jù)),并具有給其他用戶授權(quán)的權(quán)利;
(g)用戶楊蘭具有從每個部門職工中select最高工資,最低工資,平均工資的權(quán)力,他不能查看每個人的工資。
(2)把上面(a)~(g)的每一種情況,撤銷各用戶所授予的權(quán)力。
四 實(shí)驗(yàn)報告
4.1 實(shí)驗(yàn)環(huán)境:
Windows XP
MicrosoftSQL server Management Studio 2005
4.2 實(shí)驗(yàn)內(nèi)容與完成情況:
--新建數(shù)據(jù)庫
create database work
go
use work
--創(chuàng)建以下兩個關(guān)系模式,并分別插入相應(yīng)的數(shù)據(jù)。
--Worker(職工號,姓名,年齡,職務(wù),工資,部門號)
go
create table Worker(職工號 varchar(10),姓名 char(10),年齡 int,職務(wù) char(15),工資 int,部門號 char(50))
--Section(部門號,名稱,經(jīng)理名,地址,電話號碼)
create table Section(職工號 char(10),名稱 char(10),經(jīng)理名 char(10),地址 char(50),電話 char(15));
go
--插入部門信息
insert into Section values('a001','市場部門','李永','白理工','***');
insert into Section values('a002','營銷部門','李剛','白理工','***');
--插入職工信息
insert into Worker values('a001001','王明',20,'市場營銷員',2000,'a001');
insert into Worker values('a001002','李村',29,'市場營銷員',2000,'a001');
insert into Worker values('a001003','李永',20,'經(jīng)理',5000,'a001');
insert into Worker values('a002001','羅杰',18,'銷售員',2000,'a002');
insert into Worker values('a002002','李紅',24,'銷售員',2000,'a002');
insert into Worker values('a002003','李剛',32,'經(jīng)理',5000,'a002');
--查詢部門表和職工表的數(shù)據(jù)
select *from Worker;
select *from Section;
--授權(quán)
use work
go
--(a)用戶王明對兩個表有select權(quán)力;
create login [王明] with password=N'1234';
create user [王明] for login [王明];
grant select on Worker to [王明];
grant select on Section to [王明];
--插入數(shù)據(jù)權(quán)限測試
insert into Worker values('a002004','羅紅',28,'銷售助理',4000,'a002');
--查詢數(shù)據(jù)權(quán)限測試
select *from Worker;
--(b)用戶李勇對兩個表有insert和delete權(quán)力;
use work
go
create login [李勇] with password=N'1234';
create user [李勇] for login [李勇];
grant insert,delete on Worker to [李勇];
grant insert,delete on Section to [李勇];
--插入數(shù)據(jù)權(quán)限測試
insert into Worker values('a002005','羅莉',52,'銷售助理',4000,'a002');
--查詢數(shù)據(jù)權(quán)限測試
select *from Worker;
--刪除權(quán)限測試
delete Worker from where 職工號='a002001';
--(c)每個職工只對自己的記錄有select權(quán)力;
use work
go
create view Myself as select * from Worker
where 姓名=user;
grant select on Myself to public;
--(d)用戶劉星對職工表有select權(quán)力,對工資字段具有更新權(quán)力;
use work
go
create login [劉星] with password=N'1234';
create user [劉星] for login [劉星];
grant select,update(工資)on Worker to [劉星];
--更新修改權(quán)限測試
update Worker set 工資=3500 where 職工號='a002001'
--查詢數(shù)據(jù)權(quán)限測試
select *from Worker;
--(e)用戶張新具有修改這兩個表的結(jié)構(gòu)的權(quán)力;
use work
go
create login [張新] with password=N'1234';
create user [張新] for login [張新];
grant all PRIVILEGES on Worker to 張新;
grant all PRIVILEGES on Section to 張新;
--(f)用戶周平具有對兩個表所有權(quán)力(對,插,改,刪數(shù)據(jù)),并具有給其他用戶授權(quán)的權(quán)利;
use work
go
create login [周平] with password=N'1234';
create user [周平] for login [周平];
grant all PRIVILEGES on Worker to 周平with grant option;
grant all PRIVILEGES on Section to 周平with grant option;
--(g)用戶楊蘭具有從每個部門職工中select最高工資,最低工資,平均工資的權(quán)力,他不能查看每個人的工資。
use work
go
create login [楊蘭] with password=N'1234';
create user [楊蘭] for login [楊蘭];
grant view Wage(max(工資),min(工資),avg(工資))
as select max(工資),min(工資),avg(工資)from Worker Group by 部門號; grant select on Wage to 楊蘭;
--(2)把上面(a)~(g)的每一種情況,撤銷各用戶所授予的權(quán)力。
use work
go
--注銷用戶王明,收回權(quán)力
revoke select on WOrker from [王明];
revoke select on Section from [王明];
drop user [王明];
drop login [王明];
use work
go
--注銷用戶李勇,收回權(quán)力
revoke select on Worker from [李勇];
revoke select on Section from [李勇];
drop user [李勇];
drop login [李勇]
--撤銷用戶對自己的記錄有select權(quán)力
use work
go
revoke select on Myself from public;
drop view Myself cascade;
use work
go
--注銷用戶劉星,收回權(quán)力
revoke select,update(工資)on Worker from [劉星];
drop user [劉星];
drop login [劉星];
use work
go
--注銷用戶張新,收回權(quán)力
revoke alter on table Worker,Section from [張新];
drop user [張新];
drop login [張新];
use work
go
--注銷用戶周平,收回權(quán)力
revoke all PRIVILEGES on table Worker from [周平] cascade;
revoke all PRIVILEGES on Section from [周平] cascade;
drop user [周平];
drop login [周平];
--注銷用戶楊蘭,收回權(quán)力
revoke select on Wage from [楊蘭];
drop view Wage cascade;
drop user [楊蘭];
drop login [楊蘭];
use master
go
--刪除數(shù)據(jù)庫work
drop database work;
4.3 出現(xiàn)的問題:
在更改連接的時候使用SQL server身份驗(yàn)證登陸,用新建的用戶名登陸失敗,顯示
該用戶與可信SQL server無關(guān)聯(lián)
4.4 解決方案(列出遇到的問題和解決辦法,列出沒有解決的問題): 啟用SQL Server身份驗(yàn)證
SQL Server Management Studio--對象資源管理器--右鍵 你的服務(wù)器(.SQLExpress或者localhost)--屬性--安全性--服務(wù)器身份驗(yàn)證--SQL Server和Windows身份驗(yàn)證模式,最后重啟一下數(shù)據(jù)庫