第一篇:數(shù)據(jù)庫(kù)安全性練習(xí)題和答案
數(shù)據(jù)庫(kù)安全性習(xí)題
一、選擇題
1.以下()不屬于實(shí)現(xiàn)數(shù)據(jù)庫(kù)系統(tǒng)安全性的主要技術(shù)和方法。
A.存取控制技術(shù) B.視圖技術(shù)
C.審計(jì)技術(shù) D.出入機(jī)房登記和加鎖
2. SQL中的視圖提高了數(shù)據(jù)庫(kù)系統(tǒng)的()。
A.完整性 B.并發(fā)控制
C.隔離性 D.安全性
3. SQL語(yǔ)言的GRANT和REVOKE語(yǔ)句主要是用來(lái)維護(hù)數(shù)據(jù)庫(kù)的()。
A.完整性 B.可靠性
C.安全性 D.一致性
4.在數(shù)據(jù)庫(kù)的安全性控制中,授權(quán)的數(shù)據(jù)對(duì)象的(),授權(quán)子系統(tǒng)就越靈活。
A.范圍越小 B.約束越細(xì)致
C.范圍越大 D.約束范圍大
三、簡(jiǎn)答題
1.什么是數(shù)據(jù)庫(kù)的安全性?
答: 數(shù)據(jù)庫(kù)的安全性是指保護(hù)數(shù)據(jù)庫(kù)以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。
2.數(shù)據(jù)庫(kù)安全性和計(jì)算機(jī)系統(tǒng)的安全性有什么關(guān)系?
答: 安全性問(wèn)題不是數(shù)據(jù)庫(kù)系統(tǒng)所獨(dú)有的,所有計(jì)算機(jī)系統(tǒng)都有這個(gè)問(wèn)題。只是在數(shù)據(jù)庫(kù)系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問(wèn)題更為突出。
系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫(kù)系統(tǒng)的主要指標(biāo)之一。
數(shù)據(jù)庫(kù)的安全性和計(jì)算機(jī)系統(tǒng)的安全性,包括操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)的安全性是緊密聯(lián)系、相互支持的,3.試述實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全性控制的常用方法和技術(shù)。
答: 實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全性控制的常用方法和技術(shù)有:
1)用(戶標(biāo)識(shí)和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份。每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核對(duì),通過(guò)鑒定后才提供系統(tǒng)的使用權(quán)。
2)存取控制:通過(guò)用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問(wèn)數(shù)據(jù)庫(kù),所有未被授權(quán)的人員無(wú)法存取數(shù)據(jù)。例如C2級(jí)中的自主存取控制(DAC),B1級(jí)中的強(qiáng)制存取控制(MAC);
3)視圖機(jī)制:為不同的用戶定義視圖,通過(guò)視圖機(jī)制把要保密的數(shù)據(jù)對(duì)無(wú)權(quán)存取的用戶隱藏起來(lái),從而自動(dòng)地對(duì)數(shù)據(jù)提供一定程度的安全保護(hù)。
4)審計(jì):建立審計(jì)日志,把用戶對(duì)數(shù)據(jù)庫(kù)的所有操作自動(dòng)記錄下來(lái)放入審計(jì)日志中,DBA可以利用審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫(kù)現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。
5)數(shù)據(jù)加密:對(duì)存儲(chǔ)和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無(wú)法獲知數(shù)據(jù)的內(nèi)容。
4.什么是數(shù)據(jù)庫(kù)中的自主存取控制方法和強(qiáng)制存取控制方法?
答: 自主存取控制方法:定義各個(gè)用戶對(duì)不同數(shù)據(jù)對(duì)象的存取權(quán)限。當(dāng)用戶對(duì)數(shù)據(jù)庫(kù)訪問(wèn)時(shí)首先檢查用戶的存取權(quán)限。防止不合法用戶對(duì)數(shù)據(jù)庫(kù)的存取。
強(qiáng)制存取控制方法:每一個(gè)數(shù)據(jù)對(duì)象被(強(qiáng)制地)標(biāo)以一定的密級(jí),每一個(gè)用戶也被(強(qiáng)制地)授予某一個(gè)級(jí)別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級(jí)別的用戶才能存取某一個(gè)密級(jí)的數(shù)據(jù)對(duì)象。
*解析:自主存取控制中自主的含義是:用戶可以將自己擁有的存取權(quán)限“自主”地授予別人。即用戶具有一定的“自主”權(quán)。
5.SQL語(yǔ)言中提供了哪些數(shù)據(jù)控制(自主存取控制)的語(yǔ)句?請(qǐng)?jiān)嚺e幾例說(shuō)明它們的使用方法。
答:
SQL中 的自主存取控制是通過(guò)GRANT 語(yǔ)句和 REVOKE 語(yǔ)句來(lái)實(shí)現(xiàn)的。如:
GRANT SELECT,INSERT ON Student TO 王平WITH GRANT OPTION;
就將Student表的SELECT和INSERT權(quán)限授予了用戶王平,后面的“WITH GRANT OPTION”子句表示用戶王平同
時(shí)也獲得了“授權(quán)”的權(quán)限,即可以把得到的權(quán)限繼續(xù)授予其他用戶。
REVOKE INSERT ON Student FROM 王平CASCADE;
就將Student表 的INSERT權(quán)限從用戶王平處收回,選項(xiàng) CASCADE 表示,如果用戶王平將 Student 的 INSERT 權(quán)限又轉(zhuǎn)授給了其他用戶,那么這些權(quán)限也將從其他用戶處收回。
6.今有兩個(gè)關(guān)系模式:
職工(職工號(hào),姓名,年齡,職務(wù),工資,部門(mén)號(hào))
部門(mén)(部門(mén)號(hào),名稱,經(jīng)理名,地址,電話號(hào))
請(qǐng)用SQL的GRANT和REVOKE語(yǔ)句(加上視圖機(jī)制)完成以下授權(quán)定義或存取控制功能:
(a)用戶王明對(duì)兩個(gè)表有SELECT權(quán)力;
GRANT SELECT ON 職工,部門(mén)
TO 王明;
(b)用戶李勇對(duì)兩個(gè)表有INSERT和DELETE權(quán)力;
GRANT INSERT,DELETE ON 職工,部門(mén) TO 李勇;
(c)*每個(gè)職工只對(duì)自己的記錄有SELECT權(quán)力;
GRANT SELECT ON 職工 WHEN USER()= NAME TO ALL;
這里假定系統(tǒng)的GRANT語(yǔ)句支持WHEN子句和USER()的使用。用戶將自己的名字作為ID。注意,不同的系統(tǒng)這些擴(kuò)展語(yǔ)句可能是不同的。讀者應(yīng)該了解你使用的DBMS產(chǎn)品的擴(kuò)展語(yǔ)句。
(d)用戶劉星對(duì)職工表有SELECT權(quán)力,對(duì)工資字段具有更新權(quán)力;
GRANT SELECT,UPDATE(工資)ON 職工
TO 劉星;
(e)用戶張新具有修改這兩個(gè)表的結(jié)構(gòu)的權(quán)力;
GRANT ALTER TABLE ON 職工,部門(mén)
TO 張新;
(f)用戶周平具有對(duì)兩個(gè)表所有權(quán)力(讀,插,改,刪數(shù)據(jù)),并具有給其他用戶授權(quán)的權(quán)力;
GRANT ALL PRIVILIGES ON 職工,部門(mén) TO 周平WITH GRANT OPTION;
(g)用戶楊蘭具有從每個(gè)部門(mén)職工中SELECT最高工資,最低工資,平均工資的權(quán)力,他不能查看每個(gè)人的工資。
答:
首先建立一個(gè)視圖。然后對(duì)這個(gè)視圖定義楊蘭的存取權(quán)限。
CREATE VIEW 部門(mén)工資 AS
SELECT 部門(mén).名稱,MAX(工資),MIN(工資),AVG(工資)
FROM 職工,部門(mén)
WHERE 職工.部門(mén)號(hào) = 部門(mén).部門(mén)號(hào)
GROUP BY 職工.部門(mén)號(hào);
GRANT SELECT ON 部門(mén)工資 TO 楊蘭;
7.把習(xí)題8中(a)~(g)的每一種情況,撤銷各用戶所授予的權(quán)力。
答:
(a)
REVOKE SELECT ON 職工,部門(mén)
FROM 王明;
(b)
REVOKE INSERT,DELETE ON 職工,部門(mén)
FROM 李勇;
(c)
REOVKE SELECT ON 職工
WHEN USER()= NAME
FROM ALL;
這里假定用戶將自己的名字作為ID,且系統(tǒng)的REOVKE語(yǔ)句支持WHEN子句,系統(tǒng)也支持USER()的使用。
(d)
REVOKE SELECT,UPDATE ON 職工
FROM 劉星;
(e)
REVOKE ALTER TABLE ON 職工,部門(mén)
FROM 張新;
(f)
REVOKE ALL PRIVILIGES ON 職工,部門(mén)
FROM 周平;
(g)
REVOKE SELECT ON 部門(mén)工資
FROM 楊蘭;
DROP VIEW 部門(mén)工資;
8.為什么強(qiáng)制存取控制提供了更高級(jí)別的數(shù)據(jù)庫(kù)安全性?
答:
強(qiáng)制存取控制(MAC)是對(duì)數(shù)據(jù)本身進(jìn)行密級(jí)標(biāo)記,無(wú)論數(shù)據(jù)如何復(fù)制,標(biāo)記與數(shù)據(jù)是一個(gè)不可分的整體,只有符合密級(jí)標(biāo)記要求的用戶才可以操縱數(shù)據(jù),從而提供了更高級(jí)別的安全性。
9.理解并解釋MAC機(jī)制中主體、客體、敏感度標(biāo)記的含義。
答:
主體是系統(tǒng)中的活動(dòng)實(shí)體,既包括DBMS所管理的實(shí)際用戶,也包括代表用戶的各進(jìn)程。
客體是系統(tǒng)中的被動(dòng)實(shí)體,是受主體操縱的,包括文件、基表、索引、視圖等。
對(duì)于主體和客體,DBMS為它們每個(gè)實(shí)例(值)指派一個(gè)敏感度標(biāo)記(Label)。敏感度標(biāo)記被分成若干級(jí)別,例如絕密(Top Secret)、機(jī)密(Secret)、可信(Confidential)、公開(kāi)(Public)等。主體的敏感度標(biāo)記稱為許可證級(jí)別(Clearance Level),客體的敏感度標(biāo)記稱為密級(jí)(Classification Level)。
10.什么是數(shù)據(jù)庫(kù)的審計(jì)功能,為什么要提供審計(jì)功能?
答:
審計(jì)功能是指DBMS的審計(jì)模塊在用戶對(duì)數(shù)據(jù)庫(kù)執(zhí)行操作的同時(shí)把所有操作自動(dòng)記錄到系統(tǒng)的審計(jì)日志中。
因?yàn)槿魏蜗到y(tǒng)的安全保護(hù)措施都不是完美無(wú)缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用數(shù)據(jù)庫(kù)的審計(jì)功能,DBA可以根據(jù)審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫(kù)現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。
11.統(tǒng)計(jì)數(shù)據(jù)庫(kù)中存在何種特殊的安全性問(wèn)題?
答:
統(tǒng)計(jì)數(shù)據(jù)庫(kù)允許用戶查詢聚集類型的信息,如合計(jì)、平均值、最大值、最小值等,不允許查詢單個(gè)記錄信息。但是,人們可以從合法的查詢中推導(dǎo)出不合法的信息,即可能存在隱蔽的信息通道,這是統(tǒng)計(jì)數(shù)據(jù)庫(kù)要研究和解決的特殊的安全性問(wèn)題。
第二篇:數(shù)據(jù)庫(kù)的安全性實(shí)驗(yàn)報(bào)告
西 安 郵 電 大 學(xué)
實(shí)
驗(yàn):課程 班
級(jí) 學(xué)號(hào) 學(xué)生姓名 任課教師(計(jì)算機(jī)學(xué)院)
課內(nèi)實(shí)驗(yàn)報(bào)告
數(shù)據(jù)庫(kù)的安全性試驗(yàn)
數(shù)據(jù)庫(kù)原理及應(yīng)用B
網(wǎng)絡(luò)1203
孟彩霞
:::::
一、實(shí)驗(yàn)?zāi)康模?)理解SQL Server 2000驗(yàn)證用戶身份的過(guò)程,掌握設(shè)置身份驗(yàn)證模式的方法。(2)理解登錄賬號(hào)的概念,掌握混合認(rèn)證模式下登錄賬號(hào)的建立與取消方法。(3)掌握混合認(rèn)證模式下數(shù)據(jù)庫(kù)用戶的建立與取消方法。(4)掌握數(shù)據(jù)庫(kù)用戶權(quán)限的設(shè)置方法。
(5)理解角色的概念,掌握管理的角色技術(shù)。
二、實(shí)驗(yàn)內(nèi)容
(1)在企業(yè)管理器中打開(kāi)“SQL Server屬性(配置)”對(duì)話框,設(shè)置身份驗(yàn)證模式為“SQL Server”和“Windows”模式(即混合模式)。(2)創(chuàng)建、管理數(shù)據(jù)庫(kù)服務(wù)器的登錄賬號(hào)。(3)創(chuàng)建、管理數(shù)據(jù)庫(kù)用戶。(4)管理用戶權(quán)限。
(5)創(chuàng)建、管理數(shù)據(jù)庫(kù)角色。
三、實(shí)驗(yàn)環(huán)境
SQL Server 2008版本。
四、實(shí)驗(yàn)前準(zhǔn)備
仔細(xì)預(yù)習(xí)實(shí)驗(yàn)內(nèi)容,理解實(shí)驗(yàn)步驟。
五、實(shí)驗(yàn)步驟
1.在企業(yè)管理器中打開(kāi)“SQL Server屬性(配置)”對(duì)話框,設(shè)置身份驗(yàn)證模式為“SQL Server”和“Windows”模式(即混合模式)。
2.創(chuàng)建、管理數(shù)據(jù)庫(kù)服務(wù)器的登錄賬號(hào)。用T-SQL語(yǔ)句創(chuàng)建、查看、刪除登錄賬號(hào)。
創(chuàng)建一個(gè)名為Student、密碼為111、使用的默認(rèn)數(shù)據(jù)庫(kù)為JWGL的登錄賬號(hào)。EXEC sp_addlogin ‘student’,’111’,’JWGL’ 查看登錄賬號(hào)
EXEC sp_helplogins 刪除登錄賬號(hào)為EXEC sp_droplogins ‘student’
3.創(chuàng)建、管理數(shù)據(jù)庫(kù)用戶。
用T-SQL語(yǔ)句創(chuàng)建、查看、刪除數(shù)據(jù)庫(kù)用戶。
為數(shù)據(jù)庫(kù)JWGL創(chuàng)建一個(gè)用戶user1,該用戶登錄SQL Server服務(wù)器的賬號(hào)為wang,登錄密碼為secret,相應(yīng)的程序代碼為: EXEC sp_addlogin ‘wang’, ‘secret’, ‘JWGL’ GO EXEC sp_grantdbaccess ‘wang’, ‘user1’ 查看數(shù)據(jù)庫(kù)用戶為EXEC sp_helpuser 刪除數(shù)據(jù)庫(kù)中的“wang”用戶為EXEC sp_revokedbaccess ‘wang’
4.管理用戶權(quán)限。
使用T-SQL語(yǔ)句完成第3章習(xí)題12中(1)~(3)的用戶管理和用戶權(quán)限管理。企業(yè)管理器:
(1)允許用戶李明對(duì)Orders表進(jìn)行插入、刪除操作。
GRANT INSERT ,DELETE ON Orders TO ‘李明’(2)將查詢Goods表和修改單價(jià)的權(quán)限授予用戶李四。
GRANT UPDATE(Price),SELECT ON Goods TO ‘李四’
(3)將查詢Goods表的權(quán)限授予用戶文云龍,并允許他將此權(quán)限授予他人。
GRANT SELECT ON Goods TO ‘文云龍’
WITH GRANT OPTION
5.創(chuàng)建、管理數(shù)據(jù)庫(kù)角色。
如一個(gè)小組共3個(gè)成員,他們對(duì)JWGL具有相同的操作權(quán)限,具體權(quán)限為對(duì)Student,Course表只能進(jìn)行數(shù)據(jù)查詢;對(duì)SC表可以進(jìn)行查詢、修改、刪除和插入。
可以創(chuàng)建一個(gè)角色(如role),給該角色賜予相應(yīng)的權(quán)限,然后給每個(gè)成員建立一個(gè)登錄賬號(hào)(如分別為lin,wang,zheng),并將每個(gè)成員的登錄賬號(hào)添加為數(shù)據(jù)庫(kù)角色role的成員。其代碼如下: EXEC sp_addrole ‘role’
GO GRANT SELECT ON Student,course TO role
GRANT SELECT,UPDATE,DELETE,INSERT ON SC TO role GO EXEC sp_addrolemember ‘role’, ‘lin’ EXEC sp_addrolemember ‘role’, ‘wang’ EXEC sp_addrolemember ‘role’, ‘zheng’
刪除角色role,然后再使用企業(yè)管理器完成以上任務(wù)。刪除角色role時(shí),必須保證它不包含任務(wù)數(shù)據(jù)庫(kù)用戶,即要先刪除其下的所有成員。
EXEC sp_droprolemember ‘role’, ‘lin’ EXEC sp_droprolemember ‘role’, ‘wang’ EXEC sp_droprolemember ‘role’, ‘zheng’ GO EXEC sp_droprole ‘role’
六、實(shí)驗(yàn)步驟及部分結(jié)果截圖
1.混合登陸
2.創(chuàng)建一個(gè)名為Student、密碼為111、使用的默認(rèn)數(shù)據(jù)庫(kù)為JWGL的登錄賬號(hào)。
EXEC sp_addlogin ‘student’,’111’,’JWGL’
查看登錄賬號(hào)
EXEC sp_helplogins
3.為數(shù)據(jù)庫(kù)JWGL創(chuàng)建一個(gè)用戶user1,該用戶登錄SQL Server服務(wù)器的賬號(hào)為wang,登錄密碼為secret
查看數(shù)據(jù)庫(kù)用戶:
刪除數(shù)據(jù)庫(kù)中的“wang”用戶:
4.(1)允許用戶李明對(duì)Orders表進(jìn)行插入、刪除操作:
2)將查詢Goods表和修改單價(jià)的權(quán)限授予用戶李四:
3)將查詢Goods表的權(quán)限授予用戶王二,并允許他將此權(quán)限授予他人
5.創(chuàng)建一個(gè)角色(如role),給該角色賜予相應(yīng)的權(quán)限,然后給每個(gè)成員建立一個(gè)登錄賬號(hào)(如分別為lin,wang,zheng),并將每個(gè)成員的登錄賬號(hào)添加為數(shù)據(jù)庫(kù)角色role的成員
將lin,wang,zheng加為角色成員:
刪除角色role,然后再使用企業(yè)管理器完成以上任務(wù)
七、心得體會(huì)
此次實(shí)驗(yàn)是最后一次實(shí)驗(yàn),所以倍加珍惜,本應(yīng)該一次性在實(shí)驗(yàn)室完成的,但中途有事耽誤了點(diǎn)時(shí)間,所以又在自己電腦上重新做的,以前做實(shí)驗(yàn)都沒(méi)特別認(rèn)真地做過(guò),有點(diǎn)心理障礙,但當(dāng)自己真正認(rèn)認(rèn)真真做的時(shí)候,會(huì)發(fā)現(xiàn)其實(shí)不難,時(shí)間也會(huì)過(guò)的好快,圓滿的結(jié)束了最后一次實(shí)驗(yàn),卻不會(huì)結(jié)束與數(shù)據(jù)庫(kù)的緣分,以后的日子里,我會(huì)繼續(xù)深究這門(mén)學(xué)科的。
第三篇:數(shù)據(jù)庫(kù)練習(xí)題.
'選擇題(40分)
1. VFP中下列表達(dá)式中寫(xiě)法錯(cuò)誤的是
A)″總分″+[90]
B)″AB″==″AB″
C)″總分″+ 90
D)″x″<>″y″
2.數(shù)據(jù)庫(kù)文件工資.DBF共有10條記錄,當(dāng)前記錄號(hào)為3, 用SUM命令計(jì)算工資總和,如果不給出范圍短句,那么命令
A)計(jì)算后5條記錄工資值之和
B)計(jì)算后6條記錄工資值之和
C)只計(jì)算當(dāng)前記錄工資值
D)計(jì)算全部記錄工資值之和
3.要為當(dāng)前表所有職工增加100元工資應(yīng)該使用命令
A)CHANGE工資WITH工資+100
B)REPLACE工資WITH工資+100
C)CHANGE ALL工資WITH工資+100
D)REPLACE ALL工資WITH工資+100
4.文件CGE.MNX是一個(gè)
A)表單文件
B)菜單文件
C)項(xiàng)目文件
D)報(bào)表文件
5.Visual FoxPro關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能實(shí)現(xiàn)的3種基本關(guān)系運(yùn)算是
A)索引、排序、查找
B)建庫(kù)、錄入、排序
C)選擇、投影、聯(lián)接
D)顯示、統(tǒng)計(jì)、復(fù)制
6.使用數(shù)據(jù)庫(kù)技術(shù)進(jìn)行人事檔案管理,是屬于計(jì)算機(jī)的A)科學(xué)計(jì)算應(yīng)用
B)過(guò)程控制應(yīng)用
C)數(shù)據(jù)處理應(yīng)用
D)輔助工程應(yīng)用
7.邏輯型字段的寬度固定為
A)8
B)1
C)4
D)10
8.當(dāng)前表中有20條記錄,當(dāng)前記錄號(hào)是5,Display next 3命令將
A)顯示當(dāng)前記錄
B)顯示第三條記錄
C)顯示第6到第8條記錄
D)顯示第5到第7條記錄
9.備注型字段的寬度固定為
A)8
B)1
C)4
D)10
10.執(zhí)行 ?STR(109.87,7,3)后,屏幕顯示的是
A)109.87
B)″109.87″
C)109.870
D)″109.870″
11.在Visual FoxPro中,打開(kāi)表命令是
A)OPEN TABLE<表名>
B)USE <表名>
C)USE TABLE<表名>
D)OPEN<表名>
12.假定系統(tǒng)日期是1998年12月20日,有如下命令:MJ=MOD(YEAR(DATE()),100)執(zhí)行該命令后,MJ的值是
A)1998
B)98
C)981220
D)1220
13.在以下四組函數(shù)運(yùn)算中,結(jié)果相同的是
A)LEFT(″Visual FoxPro″,4)與SUBSTR(″Visual FoxPro″,1,4)
B)YEAR(DATE())與SUBSTR(DTOC(DATE()),7,2)
C)lEN(″that″)與 lEN(″that ″)
D)假定A=″that ″,B=″is a menu″,A-B與A+B
14.在VFP中,執(zhí)行STORE DTOC(DATE()+10)TO B后,變量B的類型為
A)日期型
B)數(shù)據(jù)型
C)備注型
D)字符型
15.如果要?jiǎng)?chuàng)建一個(gè)3級(jí)數(shù)據(jù)分組報(bào)表,第1個(gè)分組表達(dá)式是“部門(mén)”,第2個(gè)分組表達(dá)式
是“性別”,第3個(gè)分組表達(dá)式是“基本工資”,則當(dāng)前索引的索引關(guān)鍵字表達(dá)式應(yīng)該是
A)部門(mén)+性別+基本工資
B)部門(mén)+性別+STR(基本工資)
C)性別+部門(mén)+STR(基本工資)
D)STR(基本工資)+性別+部門(mén)
16.數(shù)據(jù)表文件CJ.DBF已經(jīng)打開(kāi),共有10條記錄,按關(guān)鍵字XM排序,執(zhí)行命令SORT ON XM TO CJ后,屏幕將顯示
A)10條記錄排序完成B)CJ.DBF已存在,覆蓋它嗎(Y/N)
C)文件在使用
D)出錯(cuò)信息
17.物理刪除記錄可用兩條命令分兩步來(lái)完成,這兩個(gè)命令分別為
A)PACK和ZAP
B)PACK和RECALL
C)DELETE和PACK
D)DELETE和RECALL
18.在VFP的幾種循環(huán)語(yǔ)句中,當(dāng)循環(huán)次數(shù)為常數(shù)時(shí),應(yīng)選用的語(yǔ)句是
A)DO WHILE
B)SCAN
C)LOOP
D)FOR
19.關(guān)于數(shù)據(jù)庫(kù)表和自由表,下列說(shuō)法正確的是
A)數(shù)據(jù)庫(kù)表可以轉(zhuǎn)換為自由表,反之不能
B)自由表可以轉(zhuǎn)換為數(shù)據(jù)庫(kù)表,反之不能
C)兩者可以相互轉(zhuǎn)換
D)兩者不能相互轉(zhuǎn)換
20.視圖設(shè)計(jì)器中比查詢?cè)O(shè)計(jì)器多出的選項(xiàng)卡是
A)字段
B)排序依據(jù)
C)聯(lián)接
D)更新條件
按照要求完成如下命令,并將操作結(jié)果寫(xiě)到對(duì)應(yīng)該題的空白處(30分)
請(qǐng)針對(duì)已知的zgda.dbf和zggz.dbf進(jìn)行操作,zgda.dbf 和zggz.dbf存放在d:data目錄下, 其中:
(實(shí)發(fā)工資=基本工資+獎(jiǎng)金+補(bǔ)貼+書(shū)報(bào)費(fèi)--公積金--水電費(fèi))
1. 對(duì)zgda.dbf按照職工姓名降序排序,排在第30位的職工姓名
sele 姓名 from zgda order by 姓名 desc張明
2. 統(tǒng)計(jì)銷售部工作的職工人數(shù)
sele count(*)from zgda where 部門(mén)=“銷售部”8
3. 統(tǒng)計(jì)技術(shù)部職工的公積金金額總計(jì) sele sum(公積金)from zggz,zgda wherezggz.職工號(hào)=zgda.職工號(hào)and 部門(mén)=“技術(shù)部”301.80
編寫(xiě)一程序,求出S=1+2^2+3^3+?..+10^10。(17分)10405071317.00
s=0
for i = 1 to 10
s=s+i^i
endfor
?s
在d:data文件夾下有zgda.dbf和zggz.dbf表,請(qǐng)編寫(xiě)并運(yùn)行符合下列要求的程序,并將該程序保存在d:data文件夾下:
設(shè)計(jì)一個(gè)名為form_TJ的表單,表單中有兩個(gè)命令按鈕、一個(gè)文本框,兩個(gè)命令按鈕的標(biāo)題分別為“統(tǒng)計(jì)”和“關(guān)閉”。
程序運(yùn)行時(shí),單擊“統(tǒng)計(jì)”按鈕完成下列操作:
根據(jù)zggz.dbf表計(jì)算所有職工的公積金的總和,并將結(jié)果顯示在文本框中;
單擊“關(guān)閉”按鈕,程序終止運(yùn)行。(13分)
1.新建表單
2.在表單上建立控件:兩個(gè)命令按鈕,一個(gè)文本框 3.兩個(gè)命令按鈕的標(biāo)題分別為“統(tǒng)計(jì)”和“關(guān)閉”。
4添加數(shù)據(jù)環(huán)境zggz.dbf
5雙擊“統(tǒng)計(jì)”,按鈕,輸入命令
sum 公積金 to a
thisform.text1.value=a
6雙擊關(guān)閉,輸入命令
thisform.release
7.保存
第四篇:實(shí)驗(yàn)三 數(shù)據(jù)庫(kù)安全性實(shí)驗(yàn)報(bào)告
一 實(shí)驗(yàn)?zāi)康?.熟悉通過(guò)SQL語(yǔ)句對(duì)數(shù)據(jù)進(jìn)行安全性控制;
2.針對(duì)具體應(yīng)用要求,完成授權(quán)和收回權(quán)限的操作;
二 實(shí)驗(yàn)工具SQL Server 2005
利用SQL Server 2005 SSMS及其SQL查詢編輯器。
三 實(shí)驗(yàn)內(nèi)容和要求
使用SQL對(duì)數(shù)據(jù)進(jìn)行安全性控制,包括:授權(quán)和權(quán)力回收。操作完成后看看已授權(quán)的用戶是否真正具有授予的數(shù)據(jù)操作的權(quán)力了;權(quán)力收回操作之后的用戶是否確實(shí)喪失了收回的數(shù)據(jù)操作的權(quán)力。根據(jù)以上要求認(rèn)真填寫(xiě)實(shí)驗(yàn)報(bào)告,記錄所有的實(shí)驗(yàn)用例。具體操作可以參照課件中的實(shí)例。
具體操作內(nèi)容:
創(chuàng)建以下兩個(gè)關(guān)系模式,并分別插入相應(yīng)的數(shù)據(jù)。
職工(職工號(hào),姓名,年齡,職務(wù),工資,部門(mén)號(hào))
部門(mén)(部門(mén)號(hào),名稱,經(jīng)理名,地址,電話號(hào)碼)
(1)請(qǐng)用SQL的Grant和Revoke語(yǔ)句(加上視圖機(jī)制)完成以下授權(quán)定義或存取控制功能,并進(jìn)行相應(yīng)的安全性測(cè)試;
(a)用戶王明對(duì)兩個(gè)表有select權(quán)力;
(b)用戶李勇對(duì)兩個(gè)表有insert和delete權(quán)力;
(c)每個(gè)職工只對(duì)自己的記錄有select權(quán)力;
(d)用戶劉星對(duì)職工表有select權(quán)力,對(duì)工資字段具有更新權(quán)力;
(e)用戶張新具有修改這兩個(gè)表的結(jié)構(gòu)的權(quán)力;
(f)用戶周平具有對(duì)兩個(gè)表所有權(quán)力(對(duì),插,改,刪數(shù)據(jù)),并具有給其他用戶授權(quán)的權(quán)利;
(g)用戶楊蘭具有從每個(gè)部門(mén)職工中select最高工資,最低工資,平均工資的權(quán)力,他不能查看每個(gè)人的工資。
(2)把上面(a)~(g)的每一種情況,撤銷各用戶所授予的權(quán)力。
四 實(shí)驗(yàn)報(bào)告
4.1 實(shí)驗(yàn)環(huán)境:
Windows XP
MicrosoftSQL server Management Studio 2005
4.2 實(shí)驗(yàn)內(nèi)容與完成情況:
--新建數(shù)據(jù)庫(kù)
create database work
go
use work
--創(chuàng)建以下兩個(gè)關(guān)系模式,并分別插入相應(yīng)的數(shù)據(jù)。
--Worker(職工號(hào),姓名,年齡,職務(wù),工資,部門(mén)號(hào))
go
create table Worker(職工號(hào) varchar(10),姓名 char(10),年齡 int,職務(wù) char(15),工資 int,部門(mén)號(hào) char(50))
--Section(部門(mén)號(hào),名稱,經(jīng)理名,地址,電話號(hào)碼)
create table Section(職工號(hào) char(10),名稱 char(10),經(jīng)理名 char(10),地址 char(50),電話 char(15));
go
--插入部門(mén)信息
insert into Section values('a001','市場(chǎng)部門(mén)','李永','白理工','***');
insert into Section values('a002','營(yíng)銷部門(mén)','李剛','白理工','***');
--插入職工信息
insert into Worker values('a001001','王明',20,'市場(chǎng)營(yíng)銷員',2000,'a001');
insert into Worker values('a001002','李村',29,'市場(chǎng)營(yíng)銷員',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');
--查詢部門(mén)表和職工表的數(shù)據(jù)
select *from Worker;
select *from Section;
--授權(quán)
use work
go
--(a)用戶王明對(duì)兩個(gè)表有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)限測(cè)試
insert into Worker values('a002004','羅紅',28,'銷售助理',4000,'a002');
--查詢數(shù)據(jù)權(quán)限測(cè)試
select *from Worker;
--(b)用戶李勇對(duì)兩個(gè)表有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)限測(cè)試
insert into Worker values('a002005','羅莉',52,'銷售助理',4000,'a002');
--查詢數(shù)據(jù)權(quán)限測(cè)試
select *from Worker;
--刪除權(quán)限測(cè)試
delete Worker from where 職工號(hào)='a002001';
--(c)每個(gè)職工只對(duì)自己的記錄有select權(quán)力;
use work
go
create view Myself as select * from Worker
where 姓名=user;
grant select on Myself to public;
--(d)用戶劉星對(duì)職工表有select權(quán)力,對(duì)工資字段具有更新權(quán)力;
use work
go
create login [劉星] with password=N'1234';
create user [劉星] for login [劉星];
grant select,update(工資)on Worker to [劉星];
--更新修改權(quán)限測(cè)試
update Worker set 工資=3500 where 職工號(hào)='a002001'
--查詢數(shù)據(jù)權(quán)限測(cè)試
select *from Worker;
--(e)用戶張新具有修改這兩個(gè)表的結(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)用戶周平具有對(duì)兩個(gè)表所有權(quán)力(對(duì),插,改,刪數(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)用戶楊蘭具有從每個(gè)部門(mén)職工中select最高工資,最低工資,平均工資的權(quán)力,他不能查看每個(gè)人的工資。
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 部門(mén)號(hào); 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 [李勇]
--撤銷用戶對(duì)自己的記錄有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ù)庫(kù)work
drop database work;
4.3 出現(xiàn)的問(wèn)題:
在更改連接的時(shí)候使用SQL server身份驗(yàn)證登陸,用新建的用戶名登陸失敗,顯示
該用戶與可信SQL server無(wú)關(guān)聯(lián)
4.4 解決方案(列出遇到的問(wèn)題和解決辦法,列出沒(méi)有解決的問(wèn)題): 啟用SQL Server身份驗(yàn)證
SQL Server Management Studio--對(duì)象資源管理器--右鍵 你的服務(wù)器(.SQLExpress或者localhost)--屬性--安全性--服務(wù)器身份驗(yàn)證--SQL Server和Windows身份驗(yàn)證模式,最后重啟一下數(shù)據(jù)庫(kù)
第五篇:數(shù)據(jù)庫(kù)安全性實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)報(bào)告
一、實(shí)驗(yàn)題目
數(shù)據(jù)庫(kù)安全性
二、實(shí)驗(yàn)要求
1)新建一個(gè)登陸名為tom,密碼為tom001的登陸帳戶,登陸后用戶名為user_tom,默認(rèn)情況下該用戶具有哪些權(quán)限?
2)授予該用戶對(duì)Student表的查詢權(quán)限,同時(shí)授予其進(jìn)一步授權(quán)其他用戶的權(quán)利。
3)新建一個(gè)登陸名為marry,密碼為marry001的登陸帳戶,登陸后用戶名為user_marry。
4)以tom001登陸,將對(duì)Student表的查詢權(quán)限賦予marry,但不加withgrant option參數(shù)。
5)以marry001登陸,嘗試將對(duì)Student表的查詢權(quán)限授權(quán)給用戶guest。
6)新建角色dbnormuser,同時(shí)將marry用戶指定該角色,授予該角色對(duì)Student表的查詢權(quán)限,再重新執(zhí)行第5步,結(jié)果如何?
7)使用sp_addsrvrolemember系統(tǒng)存儲(chǔ)過(guò)程將marry用戶指定sysadmin固定服務(wù)器角色,再重新執(zhí)行第5步,結(jié)果如何?
三、實(shí)驗(yàn)內(nèi)容
按照要求我首先建立了一個(gè)模式,1)createlogin tom with password='tom001'
usestudent_course
go
createuser user_tom from login tom with grant option
僅可以對(duì)student_course數(shù)據(jù)庫(kù)訪問(wèn),但是不能訪問(wèn)里面的表格。
2)use student_course
go
grant select on Student to user_tom
3)createlogin marry with password='marry001'
use student_course
go
create user user_marry from login marry
4)use student_course
go
grant select on Student to user_marry
5)無(wú)法授權(quán)
use student_course
go
grant select on Student to guest
6)create role dbnormuser
grant select on Student to dbnormuser
grant dbnormuser
to user_marry可以授權(quán)了
7)又不能授權(quán)了
四、實(shí)驗(yàn)心得