a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 737|回复: 2

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

[复制链接]
发表于 2012-7-31 20:48:14 | 显示全部楼层 |阅读模式
第14章 安全管理  14.1 安全控制, e4 {& R9 C$ ?( \  y) h4 o
  14.1.1 安全控制模型6 n! X( u8 F5 j$ b5 @. g, i7 P$ B

. T( {4 E0 n1 \/ _( g  身份验证 操作权控制 文件操作控制 加密存储与冗余
/ W3 v$ ~$ M8 F4 X# y. w& \9 l  14.1.2 数据库权限的种类及用户的分类
3 X& z/ k. d* g) c5 v+ Q. p' r  1、 权限的种类
' X, h8 H1 A1 _9 M; S% R9 s+ Y  (1) 对DBMS进行维护的权限;# U, K& k+ J, }$ @$ E0 p  K% r* v2 h
  (2) 对数据库中的对象和数据进行操作的权限。
$ x- t3 n7 Z8 A, j+ C  (A) 对数据库对象的权限,包括创建、删除和修改数据库对象;
  J% Q- G3 u4 `  (B) 对数据库数据的操作权限,包括对表、视图数据的增、删、改、查权限。, q. S2 F& x9 V) A6 f) d8 j# }0 r
  2、 数据库用户的分类- _- _: j6 H, `9 {
  (1) 数据库系统管理员(sa):在数据库中具有全部的权限;2 m8 A" _6 X8 o$ x8 F# V6 t% k7 D, H
  (2) 数据库对象拥有者:对其所拥有的对象具有一切权限;! c( L  M4 y' n+ ]) v$ z$ ^
  (3) 普通用户:只具有对数据库数据的增、删、改、查权限。
; x: E& j+ B  n) O0 Y4 J  14.2 SQL Server 的安全控制
! M5 Y! D6 y. V2 A5 w2 X  1、 用户访问SQL Server 数据库中的数据中,必须经过三个认证过程; r  E# ]- r2 N" y2 a$ U
  (1) 身份认证:验证用户是否有连接到数据库服务器的“连接权”;
9 m1 w1 R' P  @3 s7 z/ M& G  (2) 验证用户是否数据库的合法用户;
' t' Y7 e3 k3 p, ~, \; S: {  (3) 验证数据库用户是否具有要进行的操作的操作权限。; _/ i. M* d: m& g
  2、 SQL Server的用户有两种类型:* Q# w1 i1 H- {$ d! ]4 z+ a
  (1) Windows授权用户:来自Windows的用户或组;
. }2 U, A# y$ r( g# B  (2) SQL授权用户:来自于非Windows的用户,也将这种用户称为SQL用户。. L9 }) ?* ~% a$ k  ~
  3、 SQL Server 为不同用户类型提供不同的安全认证模式:, h% ~) l! B% w* n$ b* @& y% i4 D8 O
  (1) Windows 身份验证模式:允许Windows NT或Windows 2000用户连接到SQL Server,在这种模式下,SQL Server将通过Windows来获得用户信息,并对账号和密码进行重新验证,当使用Windows身份验证模式时,用户必须先登录到Windows,然后再登录到SQL Server;
9 k) g4 `. B; k3 G5 K% Q  (2) 混合验证模式:表示SQL Server接受Windows授权用户和SQL授权用户。
; w$ @1 Y8 s' k. [; U  14.3 管理SQL Server 登录账户% `: Z9 ?% A7 w/ V: y+ R3 S
  14.3.1 系统内置的登录账户
! ~3 t3 ]+ O  x4 Q- z  1、 BUILTIN\Administrators:是一个Windows组账户,表示所有的Windows Administrators(系统管理员)组中的用户都可以登录到SQL Server,此组中的成员同是具有SQL Server的系统管理员权限;
! D  z1 e, q, X) E% y+ B' R7 Y$ C  2、 Sa:SQL Server验证模式的系统管理员账户;
) p" R. A+ f3 F; R  3、 域名\Administrators: Windows的系统管理员同时也是SQL Server的合法用户,并且具有SQL Server的系统管理员权限。' }; Y: T1 }6 \7 v
  14.3.2 建立登录账户$ _% h: z6 M; h. ^
  1、 使用企业管理器建立登录账户
& l/ J* i* k) |3 x2 k5 E8 l  2、 使用系统存储过程建立登录账户
6 @3 Y  ]' s7 I  u& {$ }5 U  (1) 建立SQL Server身份验证的登录账户:, Z* C) Y' n6 S% \8 O5 ?/ e
  sp_addlogin [@loginame=]’login’[,[@passwd=]’password’][,[@defdb=]’database’]4 _" P0 X% F/ [$ a! c( _
  其中:
9 m* T, F: M4 |4 \9 C( f  (A)[@loginame=]’login’:登录账户名;
. c0 s* E; @- D, j' y' M3 w0 O  (B)[@passwd=]’password’:登录密码;
! K" ]0 b' p2 \6 m  (C)[@defdb=]’database’:连接的数据库。4 G! O. u9 ?1 N- t4 s
  (2) 建立Windows身份验证的登录账户8 S3 p: j2 k0 T; m- i1 p" k- Q
  sp_grantlogin [@loginame=]’login’
1 Q& |# q3 P) _3 E6 @  其中:[@loginame=]’login’为要添加的Windows NT用户或组的名称,Windows NT组和用户必须用Windows NT域名限定,格式为“域\用户”
回复

使用道具 举报

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

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

 14.3.3 删除登录账户  1、 使用企业管理器删除登录账户;% E4 b7 c4 t8 r" g- [) E
  2、 使用系统存储过程删除登录账户:! L3 L1 n; g+ g4 S# k5 Q
  (1)删除SQL Server身份验证的登录账户:
4 c. }* R' p" K4 S  sp_droplogin [@loginame=]’login’
* c- g4 }, w* {  p3 H5 o& c! R; J+ e  其中:[@loginame=]’login’:将被删除的登录账户名;. F' ?5 {$ J3 J  c, A. E/ K+ E
  (2)删除Windows身份验证的登录账户0 b' ?1 H2 I! s0 j" `% D7 S
  sp_revokelogin [@loginame=]’login’: u0 X) T6 ?0 c# m3 z
  其中:[@loginame=]’login’为要删除的Windows NT用户或组的名称,Windows NT组和用户必须用Windows NT域名限定,格式为“域\用户”
8 O* k! ~, J+ W' d  14.4 管理数据库用户; _/ f4 _8 _- u1 c
  14.4.1 建立数据库用户
# e7 ~' P' G, d4 e  1、 使用企业管理器建立数据库用户;
$ Z; |; \2 S6 e- Z6 ?  2、 使用系统存储过程建立数据库用户:$ m& k3 r8 d' c  l+ ]7 f2 o, Z# h
  sp_adduser[@ loginame=]’login’[,[@name_in_db=]’user’][,[@grpname=]’group’]+ ~: m3 ?8 N5 }
  其中:: P( r' }% p* W, Y7 ], q! ]
  (1)[@ loginame=]’login’:登录账户名,login必须是已有的SQL Server登录账户或Windows NT用户名& e, H  K5 u( c  I! W: i
  (2)[@name_in_db=]’user’:新数据库用户名,如没有指定,则user与login名相同;
* J% E5 A# R  f( z8 j8 f& {) z2 X5 q  (3)[@grpname=]’group’:角色名,新用户自动地成为此角色的成员,group必须是当前数据库已有的角色。0 L# k/ x3 z: ~# D1 v2 J
  14.4.2 删除数据库用户
# h& Q4 P2 v' r' Q4 g6 @( e8 D  1、使用企业管理器删除数据库用户;+ U/ T$ A9 ^9 H  X$ M
  2、使用系统存储过程建立数据库用户:5 t; r8 I, \0 ?+ Q9 N8 @& S
  sp_dropuser[@name_in_db=]’user’. t/ O4 Z9 h# p: T! F( h
  14.5 管理权限3 l/ U% p( ]6 w) W% y& u
  14.5.1 SQL Server权限种类
, V% {% C3 P4 Q, i, |  1、 对象权限:指用户对数据库中的表、视图等对象中数据的操作权限,相当于数据库操作语言(DML)的语句权限;$ [5 B, \# N3 N) Q& ^+ A
  2、 语句权限:相当于数据定义语言(DDL)的语句权限,专指是否允许执行:CREATE TABLE、CREATE VIEW等与创建数据库对象有关的操作;
5 n. ^0 W# _7 M2 n/ I& [# p  3、 隐含权限:指数据库管理系统预定义的服务器角色、数据库角色、数据库拥有者和数据库对象拥有者所具有的权限
; o, X9 P  T2 q& k* o* N1 C  14.5.2 权限的管理
3 C& N2 C+ P8 G( q: _1 Y- w# u' `0 T  权限的管理包括:6 j! Z7 F+ C7 c+ x$ p
  (1) 授予权限:允许用户或角色具有某种操作权;
4 V$ L( _$ l% v/ z& X, O2 A" f  (2) 收回权限:不允许用户或角色具有某种操作权,或收回曾经授予的权限;/ [0 J7 m: k/ f( ~+ T1 `" C4 h( o
  (3) 拒绝访问:拒绝某用户或角色具有某种操作权限;- E; U% C( r- N$ L+ P! l
  1、 使用企业管理器管理数据库用户权限;8 t1 V# n/ H3 y9 r6 c
  2、 使用企业管理器管理语句权限;
. Z: t/ T  ?  G& X  `  3、 使用Transact-SQL语句管理对象权限; T: K: C, }3 r# p9 ^) t
  (1) GRANT语句:用于授权;5 R1 o0 i8 F6 Z
  GRANT 对象权限名 [,…]ON{表名|视图名|存储过程名}# `* k/ d# L+ t/ F/ K  I
  TO{数据库用户名|用户角色名}[,…]
- T8 e9 t$ V, D- N: s$ V  (2) REVOKE语句:用于收回权限;$ c6 {; U& v: |( E6 }
  REVOKE 对象权限名 [,…]ON{表名|视图名|存储过程名}
. {, g# |5 j% Z( L& n! B( p3 D, i# p  TO{数据库用户名|用户角色名}[,…]0 y. N$ h; t$ t$ O+ R
  (3) DENY语句:用于拒绝权限。
/ e9 v6 h7 v: p- J" V  DENY 对象权限名 [,…]ON{表名|视图名|存储过程名}
, D8 V& Y) r9 D  TO{数据库用户名|用户角色名}[,…]
( ?7 M6 o  h) R5 C7 x0 d  4、使用Transact-SQL语句管理语句权限
' V* T7 F' n$ i. w3 v& X  S  (1)授权语句:
  h+ w/ Z- p5 }3 ]3 v, g  GRANT 对象权限名 [,…] TO {数据库用户名|用户角色名}[,…]
$ ~. c+ r8 S. Y$ i- ~  (2)收权语句;
9 ?# @  L' |# c' x% m  T% M3 Z  REVOKE 对象权限名 [,…] FROM {数据库用户名|用户角色名}[,…]
% V* M8 W8 e8 g- x/ s# q5 w& t  (3)拒绝权限。3 {' G2 a2 D5 _4 `$ u2 W4 `/ O- R
  DENY 对象权限名 [,…] TO {数据库用户名|用户角色名}[,…]
  l5 @" W: _& g( j0 @% w7 }% h  14.6 角色
* X% `3 s- X$ f/ W0 @( R  14.6.1 固定的服务器角色* p" }# F( [% J- T' w
  是在服务器级上定义,这些角色具有完成特定服务器级管理活动的权限,用户不能添加、删除或更改固定的服务器角色。用户的登录账户可以添加到固定的服务器角色中,使其成为服务器角色中的成员,从而具有服务器角色的权限。
, e* l0 M3 r! P' i  H8 n固定的服务器角色" H3 m& w; b! o3 h
描述) L0 s% E" f4 K1 f# O/ j4 H% E" N
Sysadmin! n- K# E- F! O) d* z4 B
可在SQL Server中进行任何活动,该角色的权限包含了所有其它固定的服务器角色权限
$ g6 L9 T7 Y( i- s1 X. t) sServeradmin
& S; ^7 |5 w- A; H1 Q1 ^# i配置服务器范围的设置
1 V2 V" F/ H9 j1 FSetupadmin  [* u4 t% U1 l
添加和删除链接服务器,并执行某些系统存储过程
  c2 [8 g! c# J$ X: r$ m6 P. t0 p8 K" VSecurityadmin, g& ^  E5 i* F+ z+ f8 i4 ?
管理服务器登录账户: `/ n( v9 n$ F( j# F7 {1 }
Processadmin
  f; d7 @8 r3 X! o+ ?+ \) ?管理在SQL Server实例中运行的进程9 h2 U& r9 s" T; |
Dbcreator
+ a$ y/ l* A9 @) q$ s% `7 A" ?创建、更改和删除数据库; b6 u8 }8 _. h( a$ u
Diskadmin5 u) m, s% A, g
管理磁盘文件
8 h2 G! H* ~$ W' ibulkadmin# `/ Q' e$ F; L" L# H; X
执行BULK INSERT语句. F. i* Q  W& U5 B- I

% y* B$ P; j9 l% e, n  固定的服务器角色的成员是系统的登录账户,系统内置的9 A7 O  k" A3 i3 o& c5 |
  (1) BUILTIN\Administrators组;
" E2 `0 N! Y! o' |7 ]  (2) Sa  h" |" E3 E& L" g
  (3) 域名\Administrators
8 v1 Q5 q+ F+ V  Y% w( A  自动是sysadmin角色中的成员。) ~5 T7 W+ D7 ~- ]& T- }
  1、 添加固定的服务器角色成员
- K; m4 r3 @( [) E" r* U+ m( e- e  (1) 用企业管理器实现;
. O6 G+ z/ E$ w1 B0 w  (2) 用系统存储过程实现;7 T) Z, ^, V- O% Y2 H# \. t# u
  sp_addsrvrolemember[@loginame=]’login’[@rolename=]’role’
4 H& \* i: o( m4 U9 j8 t8 h0 z, t% `# v  其中:; @* J5 M% P  q% N/ t4 h
  [@loginame=]’login’:添加到固定服务器角色的登录名称;- v- i$ h# C* C7 V+ |9 E& m3 ^0 M3 d
  [@rolename=]’role’:要将登录添加到的固定服务器角色的名称。
1 C+ p+ c7 S9 F  W  2、 删除固定的服务器角色成员
回复 支持 反对

使用道具 举报

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

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

 14.6.2 固定的数据库角色  是在数据库级别上定义,用户不能添加、删除或更改固定的服务器角色。用户的登录账户可以添加到固定的数据库角色中,使其成为成员,从而具有数据库角色的权限。
: m7 E4 j' Z# l/ d固定的数据库角色& X- U% I1 d. {8 U" h7 H. w( o" |
描述6 @9 J  [. \# c/ A
Db_owner
* r+ J' y, L2 l* A8 \/ [在数据库中拥有全部权限3 e( g( k4 Y* a, ^
Db_accessadmin1 c0 ?6 B9 a9 z* V  I- ^% x
可以添加或删除用户ID
' Z9 G7 L' z9 LDb_securityadmin) v4 q6 j, m4 l2 ]
可以管理数据库角色和角色成员,并管理数据库中的语句权限和对象权限
2 q6 ~0 F  H: `  pDb_ddladmin) a' W/ \9 X" \' i3 @# f, d6 M. N
可以建立、修改和删除数据库对象(运行所有的DDL语句)
1 A3 e: B" l" ?+ x$ m9 gDb_backupoperator
5 G2 i6 ^. Y: g, A  {可以进行数据库的备份、恢复操作/ \5 I5 o, E, C) ]7 t
Db_datareader
- `9 z8 K+ W8 n! K可以查询数据库中所有用户表中的数据8 V8 T1 d( }' C2 o
Db_datawriter- \) N( O! ?, y- E! i6 a' |7 K& e: Y
可以更改数据库中所有用户表中的数据
, e6 g# ]; x! g! Z' y; f6 v2 o3 xDb_denydatareader
/ f2 e" D5 T5 m" r; ^不允许查询数据库中所有用户表中的数据
+ x9 w1 i( r9 @, e3 z2 j; v5 IDb_denydatawriter
# Q+ H' [4 c9 g不允许更改数据库中所有用户表中的数据
; f8 ?8 K; @6 jpublic: \0 O$ f9 V+ y& ?3 u9 m6 W
默认不具有任何权限,但用户可对此角色进行授权0 E7 R; h- a/ K4 \. D. R; H; l, Q
$ _" I; l; |2 T# O% R
  其中public角色是一个特殊的角色:
, M' f' S. a% {  (1) 数据库中的每个用户都自动地是public角色成员,用户不能从public角色中添加和删除成员;9 K9 t. Z3 U9 _) M9 V6 }
  (2) 用户可以对这个角色进行授权。0 p0 K! Y& `5 U6 r+ S
  1、添加固定的数据库角色成员
6 [) m$ K' `; ?1 B' f  (1) 用企业管理器实现;6 O6 A# s4 ]9 s' ^% T* b
  (2) 用系统存储过程实现;
# p0 {" C4 \0 V, s  sp_addrolemember [@rolename=]’role’,[@membername=]’security_account’" c& X3 I! t" a, \
  其中:& W* Y/ j+ I- ]9 ?! ~
  [@rolename=]’role’:当前固定数据库中的角色名称;1 Y  r2 q- g- r5 |4 P) ?
  [@membername=]’security_account’:添加到角色中的用户名。$ [7 E6 \; y9 [- `. W
  2、删除固定的数据库角色成员
  t4 G9 ~# a! J; d9 s6 R) ~  14.6.3 用户自定义的角色
  W7 _$ X6 x* U" y1 b. {  属于数据库一级的角色,用户可根据实际工作职能定义一系列角色,并给每个角色授予合适的权限。只需将数据库用户放置到合适的角色中即可。6 ^' c% x. [5 H- E4 P  n
  1、建立用户自定义库角色# T- Z" L  Z3 Y4 N. y( F
  (1) 用企业管理器实现;
/ [* v" l9 M$ m; t4 ?  (2) 用系统存储过程实现;
" z5 D: K2 `& v! P' \7 D* C5 y' K. l  sp_addrole [@rolename=]’role’,[@ownername=]’owner’/ b* A, M- m. o+ h" |7 t
  其中:
: `, O% Z5 J+ E; N  [@rolename=]’role’:新的角色名称;! i' e3 Y; s7 _- t$ `; F
  [@ownername=]’owner’:新角色的所有者。- C; R$ o, _& O' a9 Q1 `1 `
  3、 为用户定义的角色授权;) H* y' F/ T& a) v
  4、 添加和删除用户自定义角色成员
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-10 09:48 , Processed in 0.239892 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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