第一篇:數據庫原理上機實驗報告
廣西科技大學理學院《數據庫原理》上機實驗報告
實驗序號與實驗名稱:實驗九:用戶管理和權限管理
姓名:薛亞妮學號:201000901045
專業班級:信計101實驗日期:2012年 12月15日
一、實驗目的:理解和體會數據庫安全性的內容,加強對DBMS功能的認識。
二、實驗內容:數據庫的用戶管理和操作權限管理。
三、程序源代碼:
1、對象操作授權
sp_grantdbaccess 201000901035
grant select on 產品1045 to 201000901035
grant create view,create table to 201000901035
grant execute on sp_getgoods to 2010009010352、在授權過程中體會GRANT命令中WITH GRANT OPTION 短語的作用。
--用戶201000901045--
grant select on產品1045 to [201000901035] WITH GRANT OPTION
--用戶201000901035--
grant select on 產品1045 to [201000901035]
As [201000901035]
3、分情況收回授權,并體會REVOKE命令中GRANT OPTION FOR和CASCADE
--短語的作用
revoke select on 產品1045 from 201000901035
revoke create view,create table to 201000901035
revoke grant option for select on 產品1045 from 201000901035 CASCADE
四、實驗結果分析與總結
安全性控制是數據庫管理員(或系統管理員)的一個重要任務,他要充分利用數據庫管理系統的安全功能,保證數據庫和數據庫中數據的安全。
授權登錄用戶為當前數據庫用戶 :
sp_grantdbaccess [@loginame =] login
[,[@name_in_db =] name_in_db]
使一個登錄用戶成為數據庫用戶只是授權的第一步,數據庫管理員可以進一步為能夠連接到自己所管理數據庫的用戶在該數據庫上授予所需要的權限.收回權限:收回語句授權 :REVOKE { ALL | statement_list } FROM name_list
收回對象授權 :
REVOKE [GRANT OPTION FOR]
{ ALL [ PRIVILEGES ] | permission_list }
{[(column_list)] ON { table | view } | ON { table | view } [(column_list)]
| ON stored_procedure| ON user_defined_function }
FROM name_list
[ CASCADE ]
[ AS { group | role } ]
禁止語句權限: DENY { ALL | statement_list } TO name_list
禁止對象權限: DENY { ALL [ PRIVILEGES ] | permission_list }
{[(column_list)] ON { table | view } | ON { table | view } [(column_list)]
| ON stored_procedure| ON user_defined_function }
TO name_list
[CASCADE]
第二篇:數據庫上機實驗報告
蘭州理工大學
學生上機報告
學院計算機與通信學院課程名稱數據庫原理
學生姓名侯予南學號05550204
專業班級基地班05級1班
上機日期2008年4月17日
指導教師李明
上機實驗報告
(一)實驗內容:
1、熟悉SQL Server 2000應用環境;
熟悉查詢分析器的使用方法;
2、運行課堂示例:建立表Teacher , Course ;
進行數據插入、查詢、更新、建立視圖、創建觸發器等操作;
3、完成作業(P108 第5題,P145第5題);
4、完成實驗報告。
實驗環境:
數據庫系統:SQL Server 2000
實驗過程:
在實驗中發現的問題:
小結:
教師評語:
成績:
第三篇:數據庫上機實驗報告
數據庫上機實驗報告
試驗內容
1、數據表的建立
基本表《簡單的》帶有主鍵
帶有外碼約束的(外碼來自其他表或者本表)
2、數據表的修改
添加刪除列
修改列屬性類型
添加刪除約束(約束名)
元組的添加,修改,刪除
刪除數據表
試驗過程
1、create
table
student
(sno
char(9)
primary
key,/*sno是主碼
列級完整性約束條件*/
sname
char(20)
unique,/*sname取唯一值*/
ssex
char(2),sage
smallint,/*類型為smallint*/
sdept
char(20)
/*所在系*/);
create
table
course
(cno
char(4)
primary
key,/*列級完整性約束條件,cno是主碼*/
cname
char(40),cpno
char(4),/*cpno的含義是先行課*/
ccredit
smallint,foreign
key
(cpno)
references
course(cno)
/*表級完整性約束條件,cpno是外碼,被參照表是course,被參照列是cno*/);
create
table
sc
(sno
char(9),cno
char(4),grade
smallint,primary
key
(sno,cno),/*主碼有兩個屬性構成,必須作為表級完整性進行定義*/
foreign
key
(sno)
references
student(sno),/*表級完整性約束條件,sno是外碼,被參照表是student*/
foreign
key
(cno)
references
course(cno),/*表級完整性約束條件,cno是外碼,被參照表示course*/);
例
1、create
table
s
(cno
varchar(3),/*變長的字符串,輸入2個字符就是兩個字符不會補空格*/
sname
varchar(20),status
int,city
varchar(20),constraint
pk_sno
primary
key(sno),/*約束條件的名字為pk_sno*/);
create
table
p
(pno
varchar(3),pname
varchar(20),color
varchar(3),weight
int,constraint
pk_pno
primary
key
(pno),/*約束條件的名字是pk_pno*/);
create
table
j
(jno
varchar(3),jname
varchar(20),city
varchar(20),constraint
pk_jno
primary
key(jno)
/*約束條件的名字為pk_jno*/);
例
2、create
table
spj
(sno
varchar(3),/*第一個表中的主碼*/
pno
varchar(3),jno
varchar(3),qty
int,/*數量*/
constraint
pk_spj
primary
key(sno,pno,jno),/*主碼由3個屬性組成*/
foreign
key(sno)
references
s(sno),/*表級完整性約束條件,sno是外碼,被參照表是s*/
foreign
key(pno)
references
p(pno),/*表級完整性約束條件,pno是外碼,被參照表是p*/
foreign
key(jno)
references
j(jno),
第四篇:數據庫上機實驗報告
數據庫上機實驗報告
試驗內容
1、數據表的建立
基本表《簡單的》帶有主鍵
帶有外碼約束的(外碼來自其他表或者本表)
2、數據表的修改
添加刪除列
修改列屬性類型
添加刪除約束(約束名)
元組的添加,修改,刪除
刪除數據表
試驗過程
1、createtablestudent
(snochar(9)primarykey,/*sno是主碼列級完整性約束條件*/
snamechar(20)unique,/*sname取唯一值*/
ssexchar(2),sagesmallint,/*類型為smallint*/
sdeptchar(20)/*所在系*/);
createtablecourse
(cnochar(4)primarykey,/*列級完整性約束條件,cno是主碼*/
cnamechar(40),cpnochar(4),/*cpno的含義是先行課*/
ccreditsmallint,foreignkey(cpno)referencescourse(cno)
/*表級完整性約束條件,cpno是外碼,被參照表是course,被參照列是cno*/);
createtablesc
(snochar(9),cnochar(4),gradesmallint,primarykey(sno,cno),/*主碼有兩個屬性構成,必須作為表級完整性進行定義*/
foreignkey(sno)referencesstudent(sno),/*表級完整性約束條件,sno是外碼,被參照表是student*/
foreignkey(cno)referencescourse(cno),/*表級完整性約束條件,cno是外碼,被參照表示course*/);
例
1、createtables
(cnovarchar(3),/*變長的字符串,輸入2個字符就是兩個字符不會補空格*/
snamevarchar(20),statusint,cityvarchar(20),constraintpk_snoprimarykey(sno),/*約束條件的名字為pk_sno*/);
createtablep
(pnovarchar(3),pnamevarchar(20),colorvarchar(3),weightint,constraintpk_pnoprimarykey(pno),/*約束條件的名字是pk_pno*/);
createtablej
(jnovarchar(3),jnamevarchar(20),cityvarchar(20),constraintpk_jnoprimarykey(jno)/*約束條件的名字為pk_jno*/);
例
2、createtablespj
(snovarchar(3),/*第一個表中的主碼*/
pnovarchar(3),jnovarchar(3),qtyint,/*數量*/
constraintpk_spjprimarykey(sno,pno,jno),/*主碼由3個屬性組成*/
foreignkey(sno)referencess(sno),/*表級完整性約束條件,sno是外碼,被參照表是s*/
foreignkey(pno)referencesp(pno),/*表級完整性約束條件,pno是外碼,被參照表是p*/
foreignkey(jno)referencesj(jno),/*表級完整性約束條件,jno是外碼,被參照表是j*/);
2、數據表的更改
在s表中添加一個concat列
altertablesaddconcatvarchar(20)
在s表中刪除concat列
altertablesdropcolumnconcat
更改s表concat列的屬性把長度由20改為30
altertablesaltercolumnconcatvarchar(30)
聯系方式名字為concat修改屬性為唯一的屬性名為con_concat
altertablesaddconstraintcon_concatunique(concat)
刪除約束關系con_concat
altertablesdropconstraintcon_concat
/*插入一個元組*/
insertintosvalus(‘s1’,’精益’,20,’天津’)/*20不能寫成’20’*/
試驗中的問題的排除與總結:
1、在創建spj時
有三個實體所以從3個實體中取主碼,還有一個數量屬性也要寫上
主碼由那3個主碼確定
2、更改一個數據庫中數據表時一定要先使該數據庫處于正在使用狀態
3、constraint
是可選關鍵字,表示primarykey、notnull、unique、foreignkey或check約束定義的開始。約束是特殊屬性,用于強制數據完整性并可以為表及其列創建索引。
4、--go可以不加但是要注意順序注:go--注釋提示錯誤
5、注意添加一個空元素用null
附sql備份
--創建一個數據庫student
createdatabasestudent
go
--在數據庫student中創建表studentcoursesc注意順序
usestudent
--
createtablestudent
(snochar(9)primarykey,/*sno是主碼列級完整性約束條件*/
snamechar(10)unique,/*sname取唯一值*/
ssexchar(2),sagesmallint,/*類型為smallint*/
sdeptchar(20)/*所在系*/);/*;要加*/
-----------
第五篇:地質數據庫上機實驗報告
《地質數據庫設計與應用》上機實習報告
班級:姓名:學號:成績:
五、實習中存在的主要問題
一、實習名稱
二、實習目的三、實習內容
四、實習主要操作步驟(或所用主要命令、函數操作方法)