a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 95|回复: 1

[计算机四级] 2011年计算机等级考试四级数据库技术复习笔记(14)

[复制链接]
发表于 2012-7-31 20:48:14 | 显示全部楼层 |阅读模式
第14章 安全管理  14.1 安全控制/ w% r6 S, ^  q( x% R$ N  L/ L, F
  14.1.1 安全控制模型
' a/ b' |% v* U
3 M8 F7 H# ?5 ^1 @4 }: |: ^  身份验证 操作权控制 文件操作控制 加密存储与冗余3 N0 z+ j  J! s# W+ z: R) u
  14.1.2 数据库权限的种类及用户的分类
8 j  E$ i+ e" r5 l, W, a9 p  1、 权限的种类% l. s& T' w5 e6 P4 K7 ^
  (1) 对DBMS进行维护的权限;9 I2 h+ @/ x+ ?: C, n( I6 `
  (2) 对数据库中的对象和数据进行操作的权限。
1 w5 `2 w* O3 b# C( A  (A) 对数据库对象的权限,包括创建、删除和修改数据库对象;
% \& R+ g. U8 P" G  b  (B) 对数据库数据的操作权限,包括对表、视图数据的增、删、改、查权限。
+ [* r: t0 k6 T0 R  2、 数据库用户的分类' s) K: }5 z- f( n! y0 T
  (1) 数据库系统管理员(sa):在数据库中具有全部的权限;
6 I9 e  k! J% Y7 Q  (2) 数据库对象拥有者:对其所拥有的对象具有一切权限;8 b) ]2 t! l& z. K8 C+ A! s  i- a
  (3) 普通用户:只具有对数据库数据的增、删、改、查权限。
) R3 Q$ |- |4 {; p" ?  14.2 SQL Server 的安全控制0 e0 b9 S* ]; I5 @2 q% }7 V/ @
  1、 用户访问SQL Server 数据库中的数据中,必须经过三个认证过程0 B9 F8 C7 E& F+ A, N6 ]
  (1) 身份认证:验证用户是否有连接到数据库服务器的“连接权”;8 I; s/ }! Y$ n2 d
  (2) 验证用户是否数据库的合法用户;
- J' h0 J- b' c; f9 s  (3) 验证数据库用户是否具有要进行的操作的操作权限。
5 o' W& K4 C) l1 }  2、 SQL Server的用户有两种类型:
6 _- X- S  w, Q/ Y  (1) Windows授权用户:来自Windows的用户或组;% T& z2 W" ~8 U; r0 B4 `' Y- c7 M
  (2) SQL授权用户:来自于非Windows的用户,也将这种用户称为SQL用户。
: |+ c2 v7 Z8 h1 d8 x/ F  3、 SQL Server 为不同用户类型提供不同的安全认证模式:/ ]1 l$ x0 }7 I& ^
  (1) Windows 身份验证模式:允许Windows NT或Windows 2000用户连接到SQL Server,在这种模式下,SQL Server将通过Windows来获得用户信息,并对账号和密码进行重新验证,当使用Windows身份验证模式时,用户必须先登录到Windows,然后再登录到SQL Server;
- m1 f' R' r: @9 i, q; V. b6 M  (2) 混合验证模式:表示SQL Server接受Windows授权用户和SQL授权用户。" V1 l' V2 @  u: u
  14.3 管理SQL Server 登录账户' x* N: k8 O8 y
  14.3.1 系统内置的登录账户% o- z, M/ `2 B" M0 F7 `. @
  1、 BUILTIN\Administrators:是一个Windows组账户,表示所有的Windows Administrators(系统管理员)组中的用户都可以登录到SQL Server,此组中的成员同是具有SQL Server的系统管理员权限;; b1 W+ B5 Y% r7 k# \
  2、 Sa:SQL Server验证模式的系统管理员账户;
! T" \) f) i& E3 p  3、 域名\Administrators: Windows的系统管理员同时也是SQL Server的合法用户,并且具有SQL Server的系统管理员权限。
9 l+ X( Z6 ?# M8 M4 P  14.3.2 建立登录账户
, o. |: O- Y2 M9 W( Z) o  1、 使用企业管理器建立登录账户6 w$ w" K4 t8 b+ J2 Q1 Y
  2、 使用系统存储过程建立登录账户
* Z! a6 P9 i8 }7 O5 Y8 `) s9 k  (1) 建立SQL Server身份验证的登录账户:2 q! h/ A( R0 d4 d' u
  sp_addlogin [@loginame=]’login’[,[@passwd=]’password’][,[@defdb=]’database’]$ n8 h+ a/ s* s  I
  其中:
' j+ g0 u+ X* ^; \% K" e5 o# T2 p  (A)[@loginame=]’login’:登录账户名;
$ x1 M; K  S' f! b1 C9 l+ Z  (B)[@passwd=]’password’:登录密码;
8 C  H/ [6 x, _$ g2 j, u& y  (C)[@defdb=]’database’:连接的数据库。
9 s' ~+ b& A. ~! @' j8 W/ I+ q- e6 s: e  (2) 建立Windows身份验证的登录账户9 L0 r) U3 \$ R8 G6 g& h
  sp_grantlogin [@loginame=]’login’
4 i8 V; G& _- Z# N; M: ^0 }8 O  其中:[@loginame=]’login’为要添加的Windows NT用户或组的名称,Windows NT组和用户必须用Windows NT域名限定,格式为“域\用户”
* p) o8 ^' Y3 P( |4 f1 p) `2 L 14.3.3 删除登录账户) _! b1 D- A3 S5 b& V2 @) d0 r
  1、 使用企业管理器删除登录账户;
  k' ^2 A; a, e* l* w  2、 使用系统存储过程删除登录账户:* y7 {+ _5 `! v" E6 I) z1 A+ D
  (1)删除SQL Server身份验证的登录账户:8 L( F2 h3 H5 _: }' _" f
  sp_droplogin [@loginame=]’login’
) i; l' |6 R7 q9 y0 N# \  其中:[@loginame=]’login’:将被删除的登录账户名;8 R6 y' y' i+ r& c2 {/ Y
  (2)删除Windows身份验证的登录账户  i! f' E& j6 E/ E# @) E
  sp_revokelogin [@loginame=]’login’, Y* Y# c% |& f8 f! Z
  其中:[@loginame=]’login’为要删除的Windows NT用户或组的名称,Windows NT组和用户必须用Windows NT域名限定,格式为“域\用户”
: X, `* Z4 h0 a8 C! T  14.4 管理数据库用户& c1 ^, Y- ?: |) [) {' r
  14.4.1 建立数据库用户4 Q9 A, w& ^" a; \: W- N9 [
  1、 使用企业管理器建立数据库用户;$ {6 P( M4 {! o: t, X' z
  2、 使用系统存储过程建立数据库用户:
; o0 I' s8 [: |3 {2 G; o/ a) U  sp_adduser[@ loginame=]’login’[,[@name_in_db=]’user’][,[@grpname=]’group’]
0 P: B: ^7 N1 F# B7 |- T" u4 y  其中:
# t8 u. V/ Y9 S, [  (1)[@ loginame=]’login’:登录账户名,login必须是已有的SQL Server登录账户或Windows NT用户名1 a" X# M( L# G8 W; J( @1 |2 ^
  (2)[@name_in_db=]’user’:新数据库用户名,如没有指定,则user与login名相同;
) o! b* v7 K0 v1 `% C+ P  (3)[@grpname=]’group’:角色名,新用户自动地成为此角色的成员,group必须是当前数据库已有的角色。
  y# p" p* I, Z5 H% M  14.4.2 删除数据库用户+ I! T! B$ r- G3 b+ J* n# K% G! e
  1、使用企业管理器删除数据库用户;
& _" r5 T, Z5 k/ B  2、使用系统存储过程建立数据库用户:" T2 W1 S* |9 w& g1 j' M  A1 u9 o
  sp_dropuser[@name_in_db=]’user’
- r) r- j# ]2 R4 r  14.5 管理权限
1 {9 H- U/ A$ m& _% y- U  14.5.1 SQL Server权限种类
/ o. q2 E. q/ x5 q; S! T  1、 对象权限:指用户对数据库中的表、视图等对象中数据的操作权限,相当于数据库操作语言(DML)的语句权限;) }% t% w5 ^$ m. |1 Y8 g
  2、 语句权限:相当于数据定义语言(DDL)的语句权限,专指是否允许执行:CREATE TABLE、CREATE VIEW等与创建数据库对象有关的操作;5 B& j  e% S: U( U# A3 Q
  3、 隐含权限:指数据库管理系统预定义的服务器角色、数据库角色、数据库拥有者和数据库对象拥有者所具有的权限
4 M$ @. }% Z6 F  14.5.2 权限的管理
5 j- l% O8 i5 ^  权限的管理包括:" l& C4 Z9 k3 V+ f
  (1) 授予权限:允许用户或角色具有某种操作权;
, O$ b3 h2 q  B5 L
) J. F. c/ G$ Y: F  (2) 收回权限:不允许用户或角色具有某种操作权,或收回曾经授予的权限;
回复

使用道具 举报

 楼主| 发表于 2012-7-31 20:48:15 | 显示全部楼层

2011年计算机等级考试四级数据库技术复习笔记(14)

</p>  (3) 拒绝访问:拒绝某用户或角色具有某种操作权限;8 }( q) E9 a! ?
  1、 使用企业管理器管理数据库用户权限;- e, I+ U% l/ d$ [* J
  2、 使用企业管理器管理语句权限;7 o0 ]  F- L! F% ]+ t
  3、 使用Transact-SQL语句管理对象权限5 A/ L* J. n7 ^6 J# t
  (1) GRANT语句:用于授权;0 }8 J% ~' I6 d2 R1 T1 E1 r% ?) Y
  GRANT 对象权限名 [,…]ON{表名|视图名|存储过程名}# m9 K, C! w7 c/ j( j
  TO{数据库用户名|用户角色名}[,…]! o, s. H3 V4 O/ F
  (2) REVOKE语句:用于收回权限;! D8 J. Y$ {* f! Q" j& }
  REVOKE 对象权限名 [,…]ON{表名|视图名|存储过程名}9 n4 e! I7 T3 Z) b" V5 V
  TO{数据库用户名|用户角色名}[,…]$ ~2 T  n, y% Q4 B  x. a4 J  q% v6 K
  (3) DENY语句:用于拒绝权限。
& a7 ?6 ?# Z, }7 W  DENY 对象权限名 [,…]ON{表名|视图名|存储过程名}
9 M8 `0 H: S3 A7 Q7 \  z! x  TO{数据库用户名|用户角色名}[,…]; F, n# O+ z6 e" e
  4、使用Transact-SQL语句管理语句权限
9 o7 |+ Z0 Y6 B  (1)授权语句:! ^7 h, {+ ~  k' \" s/ ?' Q5 \$ w
  GRANT 对象权限名 [,…] TO {数据库用户名|用户角色名}[,…]9 T+ G. t" s& n& \) f
  (2)收权语句;+ k# A+ @: ], N
  REVOKE 对象权限名 [,…] FROM {数据库用户名|用户角色名}[,…]: X6 V. x  O6 H, u5 u0 x- y# v# `
  (3)拒绝权限。' k  `& Y( W2 l+ r2 N
  DENY 对象权限名 [,…] TO {数据库用户名|用户角色名}[,…]/ d5 \2 s5 u4 E* u& }) t0 v
  14.6 角色
5 @+ |5 L  |+ G$ ]  14.6.1 固定的服务器角色
3 l- Z$ \( Z9 q# d8 U5 {  是在服务器级上定义,这些角色具有完成特定服务器级管理活动的权限,用户不能添加、删除或更改固定的服务器角色。用户的登录账户可以添加到固定的服务器角色中,使其成为服务器角色中的成员,从而具有服务器角色的权限。
" N. b- _2 C1 P; |固定的服务器角色+ B! u8 m7 Y( n
描述
$ v+ }9 g2 z* `; E" w( YSysadmin4 J* {- @* _' J$ e7 D& j7 X7 n+ X
可在SQL Server中进行任何活动,该角色的权限包含了所有其它固定的服务器角色权限
, d: b, i, g% t7 B6 Q. W( v! T; TServeradmin, o) N! G5 h$ k+ _0 Z) H" u: M
配置服务器范围的设置
( I# t3 N$ b: bSetupadmin
9 r6 x: a2 s7 i  U+ x2 T添加和删除链接服务器,并执行某些系统存储过程3 u) r3 l9 p! c- Z, X
Securityadmin
3 ^6 J( q: H" @. k! ?管理服务器登录账户
) v  n" |0 F& z, i7 _$ R9 P1 p: Y" QProcessadmin  F' n  W2 ]0 h; W1 C; S3 z9 g
管理在SQL Server实例中运行的进程; K/ A' I) x3 A# |( c
Dbcreator2 M' N2 x1 K8 z+ k9 e
创建、更改和删除数据库. W1 v4 v8 h% M- t$ W
Diskadmin
7 e2 X! X' x1 W! M# k管理磁盘文件1 h9 a$ F1 C7 [
bulkadmin! |0 M* f" p1 ?9 }: F6 k
执行BULK INSERT语句2 N; d: U9 C- y' }4 n# q" b
4 n+ V; b# ~0 e, u: a* B
  固定的服务器角色的成员是系统的登录账户,系统内置的
( \3 {; ~+ ?0 m  (1) BUILTIN\Administrators组;& A0 i9 g9 R0 y1 [  m8 h8 P- S5 n
  (2) Sa
, c5 e' G3 ~& a2 F1 }6 G+ \- I: w  (3) 域名\Administrators" w% Y7 m" G+ t3 t% O8 B
  自动是sysadmin角色中的成员。/ x" o# b4 Q: n7 v" V/ H- p5 I
  1、 添加固定的服务器角色成员
5 k# e6 I8 K. H! p  (1) 用企业管理器实现;, V$ W9 M+ e5 R, }$ h5 x
  (2) 用系统存储过程实现;! p- F3 ~* U" z; v
  sp_addsrvrolemember[@loginame=]’login’[@rolename=]’role’  x! i. r2 Q' \) {1 k  Z% b
  其中:
7 Y( T+ p; K9 A6 ?& U  [@loginame=]’login’:添加到固定服务器角色的登录名称;. w  b  `+ a+ t2 a0 z
  [@rolename=]’role’:要将登录添加到的固定服务器角色的名称。7 {' [( I/ t4 W# p/ C4 A. p6 }4 a
  2、 删除固定的服务器角色成员5 ~- L& A: C6 f$ h9 H  Q0 l
 14.6.2 固定的数据库角色
2 r4 k& V( y) f  是在数据库级别上定义,用户不能添加、删除或更改固定的服务器角色。用户的登录账户可以添加到固定的数据库角色中,使其成为成员,从而具有数据库角色的权限。4 k9 i( q+ H: H. A
固定的数据库角色
, l$ a6 ]3 B( k2 n描述+ W7 _( X$ Q% e. o' T
Db_owner$ a# \% S$ Z- Z
在数据库中拥有全部权限/ ]2 B' u5 Q9 m" ?: ^7 I4 S4 R
Db_accessadmin8 K9 [% f. M$ a
可以添加或删除用户ID
. Z6 o! S; f5 @- I1 cDb_securityadmin
) s9 R7 s6 O* i可以管理数据库角色和角色成员,并管理数据库中的语句权限和对象权限0 ?( m3 Q. d, q
Db_ddladmin
0 k/ z% r  W$ r5 G: s( x; M3 z可以建立、修改和删除数据库对象(运行所有的DDL语句)
/ e$ q" C5 ^0 `/ w  |$ V- zDb_backupoperator
$ v2 ^: q7 B+ H% a可以进行数据库的备份、恢复操作
% w: l7 H; Q( s9 H0 j0 UDb_datareader
' b2 g5 F3 J. u. ]可以查询数据库中所有用户表中的数据
1 O( m+ _5 A: y5 Q8 _% |6 yDb_datawriter
6 D) Y# d7 O5 v2 R可以更改数据库中所有用户表中的数据8 E0 S+ V% }, S7 T( {4 z
Db_denydatareader4 S4 L1 u9 X! V' g/ H2 g
不允许查询数据库中所有用户表中的数据
! [: n2 j' k/ d. v7 [; L% wDb_denydatawriter/ @  f% g' F3 j' b
不允许更改数据库中所有用户表中的数据
* A; |3 B  Z$ g/ Hpublic
+ G$ l( }6 `& T, g默认不具有任何权限,但用户可对此角色进行授权
8 @5 u3 z' d/ w) S  N8 O" I; g; D& }* V! t6 T% P4 D9 j
  其中public角色是一个特殊的角色:/ o# @; }: ?. u7 v6 u
  (1) 数据库中的每个用户都自动地是public角色成员,用户不能从public角色中添加和删除成员;
$ l# S3 [& V5 ^0 ?+ U% Y" h9 B! L  (2) 用户可以对这个角色进行授权。
' k! b; X) @% [  |0 A. b  1、添加固定的数据库角色成员* k1 L: J3 i: J& }+ }/ z
  (1) 用企业管理器实现;: h  `+ \( `" e1 s# [5 y2 ~% E/ l
  (2) 用系统存储过程实现;0 n/ h( |# n+ }* o0 d
  sp_addrolemember [@rolename=]’role’,[@membername=]’security_account’
% D4 I5 d3 @, }. `2 D' z! A$ G% J  其中:
+ i; P/ ?. u" T, b  [@rolename=]’role’:当前固定数据库中的角色名称;
$ S0 g- c; Q# d/ }  [@membername=]’security_account’:添加到角色中的用户名。
. I+ x& c* |' b8 Z  2、删除固定的数据库角色成员
( g2 s8 G+ z5 H& H" r8 _  14.6.3 用户自定义的角色
) W4 E; x9 u* P2 ^- T1 Y* @3 K  属于数据库一级的角色,用户可根据实际工作职能定义一系列角色,并给每个角色授予合适的权限。只需将数据库用户放置到合适的角色中即可。+ t8 A/ y  l: B
  1、建立用户自定义库角色& G7 {9 V2 U/ m$ F
  (1) 用企业管理器实现;
$ s' f1 Q  d$ ^- h7 M; T  (2) 用系统存储过程实现;
: z; P# P4 `% j# y8 T: z  sp_addrole [@rolename=]’role’,[@ownername=]’owner’
5 r. O# F' M- {0 J! U  其中:8 h  \" o+ Q6 F
  [@rolename=]’role’:新的角色名称;
0 r0 N* o  }# I. v# r+ r% {8 n9 s  [@ownername=]’owner’:新角色的所有者。; ]1 u# g+ f- S% j- D7 g) T
  3、 为用户定义的角色授权;
$ |1 {8 ?  [9 n6 L3 @- ]5 l  4、 添加和删除用户自定义角色成员
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-29 12:22 , Processed in 0.274256 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表