实验八数据库安全管理.docx
《实验八数据库安全管理.docx》由会员分享,可在线阅读,更多相关《实验八数据库安全管理.docx(28页珍藏版)》请在冰点文库上搜索。
实验八数据库安全管理
实验八数据库安全管理
一、目的与要求
1.掌握创建用户和角色的方法
2.掌握SQL授权命令和收回权限的命令
二、实验准备
1.了解SQLServer登录身份和登录模式的概念;
2.了解用户、角色、登录三者的概念;
3.了解权限授予和收回的的T-SQL语法。
三、实验内容
(1)创建登录名
1.创建新的登录名testlogin
(1)在对象资源管理器的目录树中安全性”登录名”,点击右键选择新建登录
名”,设置登录名为testlogin,“SQLServe身份验证”密码为abc,默认数据
库为“studentdb”如图8-1所示。
瓦望空谆翹器T4x
TJXXV6O2123恪QLServer4.0.15M•」XXYl
l£LJ;»庭岸
E|_^宜樂
SNTAUTHQRUYXSVSTEM昌弓a
”j寤器雋色
-J
l+:
h孫备器疋来
E□EWJ
F匚1eS
I卜」NotrffcationServices
l昌SQLServer畑(已禦用伍XP)
肚勰音禮器
-7xl
白7
d|占JXXY6O2123(SQLServer9.Q.1390-」XXYl
出」楼辜
Fl_J左全性
Fl二
%BUlLTIN\AdminiTtrators
iT'jJXX¥&0222\&QLServer3005MSF
JXXV6D222\SQLServer2DO5MSE
r*jJXXV6O22A5QLSfrrver2OO5SQL
ANTAUTHORJTY\S¥STEM
A53
占te^dogirr
出uJ雅芭
E口径醤
E一1嵐黑器讨金
0Ld
+_jNotificebonServices
bSQLServer世理(已翌卑世理XP)
图8-1
提问:
此时用testlogin登录名创建新的连接,登录到对象资源管理器,是
否能登录成功?
不能登陆成功
⑵右击testlogin登录名,选择属性,设置用户映射”,设置映射到此登录名
的用户为“studentdb”如图8-2所示。
这里即是创建和登录名同名的用
户,该用户属于默认数据库。
这个用户具有的数据库角色是public
丈件旧糯[E〕视圄個工具CT)或口㈣
曲资頂誉理器
▼n刈
■SS(O)'亚
曲■
4甘逢童诫■歯L&囹说左|吕」
I-.0JXXY602123侶QLServer9-0.1399-JXXV<0Ui!
3!
强岸
QU宜吐
F
翊BUILTIN^dminfstrators
r]J)(X¥6022?
\$QL$efver2005MSF
轴JXXY6O222\SQLSenrtr2005MSS
!
>jJXXV6O222\SQLServer20055QL
&NTAUTH0R1TY\£¥£TEM
舟«
&tEstiogin
(3)确定后再次以testlogin及其密码登录查ssms,在testlogin登录名下新建查
提问:
此时是否查询命令能查询到st_info表中的数据?
为什么?
答:
不能,因为未获得访问特定数据库中数据的权利
JXK¥«2U3.Etudentdb-SQLQu^ryLfiqr損賽警X
select"fz™3t&info|」
图8-2
⑷若要查询studentdb数据库中表的数据,则要在数据库角色成员身份中选择db_datareader角色(回到sa登录下设置该登录名的属性),再运行上题中的查询语句,查看结果。
(5)
总吴尽住-t«llogir»
$晦-CJMJil
Mh
严阳些壽角邑-曲•如射
拽牡缰冬名的用户動:
RU4
B
B
□
■ulas*
mdiil
■idb
用户
'StuJHIitdb
iHtl&pn
dbt
□
tMpdi
就絆囱包翻J!
出血m畑*tmZ
_|躺一中亡etxsirift^JiA_b*ekupcf«i:
*t4r
/lA.dHl'UAa^LaE岛_血1mi.l・r*d*3^ddll.4-kL3.dh.dH*.T*d“iriiik^rdh_di-7.Td»^mtltF4-in4r3tyJidpjp.
31
n存一*TJ-ah3T-=-kW-邑
ron¥t_inE^
:
--
=3ft*.:
肚
w
11
12
13
U
15
a_m嘤嶼叫OODIEOI的i2HJMK»l『A血]®1町29HIBGIIB他呦梵JW1WO1072311[KIK2H1KO101XQIKIU2M1DK-1Q:
2WiKC1H>2EH2K^IDS2RQK1K-2W5flK-10/
3ijiri_LUttm7-l2.1DDQQ&»ffi»l3£7-l2-2GHIil»-HlDQD■隔S29DQWDdDX>19I:
7-O5-13MWBM»l3£&U7430DI»W[]aC>is^-mwAMoasI轉lxIZm^DdDQOT昭洛谄OOWDOOKi卿囲曲gmgiix皿-HESWlBDQlK.nDQC
I超DEdniHiKDODXiilrf-1211mOftDOtrai
a.Nm
粕科学[嘶计W罠時血I*冲1科宇除啦kmh^kc-iss
口肋七㈣皎□宜七加就
MULL
MJLL
!
■JLL
Mill
LULL
K'JLL
MJLL
NULL
JJ
MJLi
•疇=1玉注南协州盲甲ai■县
厂函ii棉确帀广苗斟知
HULL駅省報击和TOI县
■底击
■r»i
F^nrtHULLHULLHULLHULLHULLNULLHULLHULLNULLHULLHULLHUllHULLHULLHULL
在查询编辑器中运行命令
updatecinfosetccredit-ccredit-1wherecno-・97100:
.X
看是否允许
若不允许,则要在数据库角色成员身份中选择db_datawriter角色。
重新运
行该条更新语句,查看结果
曲相虽
用户
■k5t«r
E
■i■弧
studeutdb
;ttxtlaci-^
ttnpdb
□已自用雜户•女Mdfr
员身谢W.Etud-intdb
F]dh_BCCA33hdnsn
dh.lMidcMp響址也L@tf
■/db_d6lu*4i.dtr
dh_diU“iG
.dJb_6HYy4*t
jdb_dmyxl4twrraifr日dh_Mr.n«rdh_l.i£u^lLyKtlnad.
/|puh-lLC
数据库角色应员身份电):
^tudentib
db_Acces,Eadmindb_backupoperatg够db_datareader*db_dlatawrit-&r
db^ddladmindb_denydatareaderdb_denydatawr11erdb_owner
db_securityadmin9public
CNo
匚.Type
CCredit
———一
CDes
19010122
艺术设计学
选修
4
NULL
20010051
民法学
7
NULL
29000011
体育
4
NUtl
9710011
大学计質机基讹
必修
3
Am
9710021
曲程序设计基础
必修
3
M.L
9710031
敎据库应用基础
必僱
3
NHL
9710041
(:
语言程序设计“
3
NLAL
9720013
大学计茸机基…
1
NULL
9720033
数据库应用基…
1
本实践是在学…
9720043
t语言程序慄程"
2
Am
米NULLNULLf^JLLf^JLLNUIL
图8-3
2.提问:
testlogin登录名登录后,允许访问服务器上所有的数据库吗?
能访问哪些数据库?
。
登录用户只能看到并访问它自己的数据库而不能看到其他的数据库
(二)创建用户
创建用户时选择映射到已有登录名,即令一个登录名可以访问多个数据
库。
一个新的登录名(如testlogin)创建后,在其默认数据库下会建立一个同名
用户(testlogin),即用户testlogin允许访问登录名默认的数据库studentdb。
而
要用testlogin登录后能访问其他数据库,则要在其他数据库中创建新用户,映
射到testlogin这个登录名,这样登录后就可以访问其他数据库了。
如,在
studb数据库下创建一个新用户U1,属于testlogin登录名。
⑴回到sa登录下,展开S'tudentdb”数据库”安全性”用户”,右击新建用
户”,填写用户名为U1,如图8-4,点对话框按钮,选择登录名如图8-5,点
击浏览”,选择testlogin,如图8-6
血JXXV&02123(5遗CjS.SiBjErt
i±LJ戢皿快開
Esi|jfiiudtn^db
SI二遊匪簣至裁
田:
J衰
田丄呗S1
ii-jsxa
IlJ可軒施
图8-4
用户曾QD:
山
*
©证植棕©:
c曙將称⑥.
断禅»):
u
此用喷有的架珂口:
1用曲期植*
图8-5
=ju五-巧朝前
用户宕00:
H登录名2:
证书启称(C
率托I主疔僧
tF1'®"i"J?
Pv
藍认架枸mi•
此用户將甘的护忡切).
癬11牛(!
1酉商谴类型的对蠻。
匹可的対敲E.
[EinLUHVAiiLiu.strfct«rs]登录名
[JTXrM22?
^Q]^erv^2XO5H5nElJ5«-1;JIXT6Ce22SUE5QLSERVm]登录名
[TBT6fl22?
^QLS^v^aH5H5SqLVS®-tJTXT6D2223^SpLSIKVm]登乗客
[皿1T64]22:
rGgLStry魁敗弟QW皿Uh迂$關笳时02證$临諷15皿惟艮]萤录害
[HTiinHDKnYVSYSIIHj輩录宅
£^1螢录名
[LAdtldgkrJ
Q_j轴.军疑関
.*u1CE
it_j同丈词
£」可氓性
.*.二ServiceBroker
GJ蚩全性
E_J
虽gue^t
电INFORMATION.SOE
兮^ys
AU1i_j嶺
图8-6
提问:
若要在S'tudentdb”数据库中创建映射到testlogin登录名的新用户
U2是否能成功?
为什么?
不能成功
用
证书君和㈡
3JU^cd):
止隔曰用有的亲枸口
同肯申砂
]db_:
kee«l-iaikLA
]©H—H/iiCUf*旳~站"
)db_dAW“血
flicmMofr&QLsO
创退対于用户輿#。
啊如曲SdSftv航Smg)
J搁(jTransac祐QLi吾句或枇散進8接生了舁聲*(MicroKliS^SarH^.DnrrKttaihfei)谡登录已用另一牛用户容开直祎户#舸剧两萌①吕皿■K*:
35W3)
靳弋匀£~淞
|Jb._d4t-a.iirltvr
(2)刷新testlogin登录下的数据库,查看是否能访问studb数据库了
隈射到£耀耒剁用户cw:
V.K
用户
If认顒构
\P
1B4rt*r
□
■«dll
□
■sA
■4nsrfb
VI
曲0
□
EtnivnUb
UiUopa.
£
EJ
t4»jdb
dl_bKliT44ptf«llfd^_dkt«riuse目匸udb
(3)在testlogin登录下,新建查询,运行命令""汇厂,查看是否成
灯凶”-M爭■比.卞JF日羽|毎|
F.
JXXVfiO2123.(tudbSQlJQueryrsqrJS罢
usestudb
seiecc-Cx™3
口吕estudb
授予U1用户查询图书表的权利,命令为
grantselectonStoU1
回到testlogin的查询窗口中,重新运行上题的查询语句,看是否成功
JXX¥M2U3.rtUdb-SQLQueryJ,sql*JJusestudb
grantonStoU1
耳消息
命令已成功完成。
JXX¥642123.fludb•SQLQdi■甲2L绢I"JXX¥6D2123.=tudb■SQLQue^l.iql1usediudb
卜ultct*rrw5
-1
III
」哨!
8
1
■nonametw:
bcrndaadnaraentcc傅addtwiftfi
1拓厂]张三男19954)^2000.00:
00.000CS_计算机帧團面世砂HULL
2Tlio"sjJE女19SM7-lDOOM0OimENjgig*总广东NULL
⑸若要收回该权限可以用命令revokeselectonSfromU1。
问期#■叱殆厂乌耳生1僅
JXX¥6O2L23.Etudb-EQLQuerylsql*」XXY6O:
revokeaeleeron5framUi|
Jj消宴|
命令已成功完成.
(三)管理角色
1.角色分类为服务器角色和数据库角色、应用程序角色。
分别查看系统预设的服务器角色和数据库角色有哪些。
服务器角色:
Sysadmin,serveradmin,setupadmin,securityadmin,
processadmin,dbcreator,diskadmin。
db_datareader
数据库角色:
db_owner,db_accessadmin
db_datawriter,db_ddladmin,db_securityadmin,db_backoperator,db_denydatareader,db_denydatawriter。
2.自定义角色
(1)在studb数据库中创建一个自定义角色,名为testrole。
展开目录树
数据库”“tudb”安全性”角色”数据库角色”,右击新建数据
库角色,填写角色名称为“testrole'选择所有者为“U1”如图8-7所
迭择页
才安全庐鱼
选拦第皓阵用户菠角色
jrrS'%
选择这些对象宾裂
用户.应用程序角色」如据血伺色
输入寒选择的对象名称删〕⑻:
检查名称©
浏览⑻
匹駅的対療啊.
dfe
:
:
A
[4bol
用户
r&
叮
用户
r.a
[IWTDRMATIOH^CHElM
用户
n誓
[public]
埶摇库角色
”旦A
[syi]
用户
=
.圜汕
[VI]
用户
•V
r—
踊定
取消
帮助
图8-7
⑵设置testrole对studb数据库中S,C,SC表的若干权限
右键点击testrole角色,选择属性,设置安全对象,如图8-8所示
」戲据阵龟色-秆建
T回
迭择页
如安全対象
L扩虑厲性
角色名称01):
teztrale
所有者®
n
址角色糊有的架构⑸:
*1
:
:
—
=
dbo
图8-8
点击添加”,选择添加对象为特定对象”,如图8-9
图8-9
选择安全对象类型为表”,如图8-10
厂r
存谕过福
11?
j
t—
"r,Jr厂厂r厂厂
J内脈倒數
:
恬星函数
1喪值函埶
.跆函频
1应用程帛角色
」程厚集
图8-10
再点击浏览”,选择选择该角色允许设置的S,C,SC表,如图8-11
图8-11
回到角色属性窗口,此时就能对允许访问的表设置具体数据库权限了,如
图8-12,对C表授予“insert”“delete”“select权限up则在这些项目对应的复选框中打钩,这里还可以赋予授权权限和拒绝该权限。
这样就使得testrole角色具有对数据库中多个表的多项权限,那么把该角色授予给用户,就能一次给用户授予多项权限了。
图8-12
⑶在sa登录下,将testrole角色授予给testlogin登录名下映射到的studb数
据库中的U1用户。
即设置testlogin登录名的属性,对studb数据库勾选
testrole角色,如图8-13所示。
mesterm^del
m^db
ReportServerJSQiLE...
ReportS&rverJSQLE...
tempdh
dfrn.yd.atareaaerdtjiydttuiriursecurityadiTiin.
public
图8-13
(4)在testlogin登录下,在查询编辑器中里窗体中运行查询C,SC表的命令,和
对SC表进行删除的命令deletefromSCwherecno='C1'查看是否成功。
sno
eno
score
S1
C2
76.0
S1
C5
77.0
S10
C5
50.0
S2
C2
93.0
NULL
NULL
NULL
3.为角色授予权限和收回权限的命令与对用户相同
⑴收回testrole中对C表的删除的权限,命令为revokedelectonCfromtestrole_
(2)要授予testrole角色能修改SC表score字段的权限,则命令为grant
update(score)onSCtotestrole
四、思考与练习
1.登录、用户、角色的概念如何区分?
三者在SQLServer中有何关系?
答:
a.服务器登录名属于某组服务器角色;
b.服务器登录名需要于数据库的用户映射后才拥有操作数据库的权限
c.数据库用户属于某组数据库角色以获取操作数据库的权限
d.数据库角色拥有对应的数据库架构,数据库用户可以通过角色直接拥有架构
e.数据库用户有默认架构,写SQL语句可以直接以对象名”访问
f.非默认架构则要以架构名.对象名”访问
2.用户自定义的角色是属于所有数据库的吗?
是否能在每个数据库的安全性下角色中看到?
答:
用户自定义的角色不是属于所有数据库,不能在每个数据库的安全性下角色中看到