a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 93|回复: 1

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

[复制链接]
发表于 2012-7-31 20:48:14 | 显示全部楼层 |阅读模式
第14章 安全管理  14.1 安全控制0 `" C) o5 n8 M* [) h0 _7 x. _
  14.1.1 安全控制模型
( J, t% I3 d6 ^  c! C6 `; }' b; x ! ~+ T+ k+ F: \4 C# T2 ^" u; G& ?
  身份验证 操作权控制 文件操作控制 加密存储与冗余
4 d% v6 t+ i- @6 s% N  14.1.2 数据库权限的种类及用户的分类" T2 V. c- f% B' l: v' c
  1、 权限的种类
9 k  W+ V& Q: E; x  (1) 对DBMS进行维护的权限;
1 W9 y# k9 L0 B. d$ a" Y  (2) 对数据库中的对象和数据进行操作的权限。  K. e9 W3 e& M. |  L
  (A) 对数据库对象的权限,包括创建、删除和修改数据库对象;' [1 c# `0 w2 x' j/ P' f
  (B) 对数据库数据的操作权限,包括对表、视图数据的增、删、改、查权限。
- h- f/ |9 S+ {+ h/ y8 D  2、 数据库用户的分类& n3 x6 U) l3 E; b7 z  p( v* o
  (1) 数据库系统管理员(sa):在数据库中具有全部的权限;( u: c- c' i( \2 C
  (2) 数据库对象拥有者:对其所拥有的对象具有一切权限;
& m) Y6 B9 H/ e5 W6 A8 {  (3) 普通用户:只具有对数据库数据的增、删、改、查权限。* k8 a1 s2 S# P5 ^
  14.2 SQL Server 的安全控制
/ |) E# T5 I2 v) O5 `  1、 用户访问SQL Server 数据库中的数据中,必须经过三个认证过程
: t9 j. D3 @" h$ y) T' j' h$ @  (1) 身份认证:验证用户是否有连接到数据库服务器的“连接权”;
5 q$ M- h8 y+ Y/ |2 {  (2) 验证用户是否数据库的合法用户;
. B# _0 O& @' f* u0 f5 p$ d2 [/ u  (3) 验证数据库用户是否具有要进行的操作的操作权限。
( ^6 G. P9 q8 e7 @8 J, @  2、 SQL Server的用户有两种类型:! s% |% r# g9 I$ z
  (1) Windows授权用户:来自Windows的用户或组;
, V9 S- F  X: y0 T0 u5 U  (2) SQL授权用户:来自于非Windows的用户,也将这种用户称为SQL用户。- P- R+ z: m' u, ]  k9 L
  3、 SQL Server 为不同用户类型提供不同的安全认证模式:/ F- O9 l+ o+ G5 r
  (1) Windows 身份验证模式:允许Windows NT或Windows 2000用户连接到SQL Server,在这种模式下,SQL Server将通过Windows来获得用户信息,并对账号和密码进行重新验证,当使用Windows身份验证模式时,用户必须先登录到Windows,然后再登录到SQL Server;
/ @$ k- T* @5 _" p, N* j  (2) 混合验证模式:表示SQL Server接受Windows授权用户和SQL授权用户。0 Y2 i# l6 u/ U8 l7 w6 f; r4 X
  14.3 管理SQL Server 登录账户
) d+ ^  l# l( B9 s4 i) U6 b6 @  14.3.1 系统内置的登录账户+ m* V+ N: K% L; C0 S, F
  1、 BUILTIN\Administrators:是一个Windows组账户,表示所有的Windows Administrators(系统管理员)组中的用户都可以登录到SQL Server,此组中的成员同是具有SQL Server的系统管理员权限;$ t; ]" E" L; i
  2、 Sa:SQL Server验证模式的系统管理员账户;
  G( L$ |* h' d3 c4 g  3、 域名\Administrators: Windows的系统管理员同时也是SQL Server的合法用户,并且具有SQL Server的系统管理员权限。
) W) K  d8 I9 N8 H) C! U2 Y3 W* w  14.3.2 建立登录账户3 N6 h4 c8 H* E9 N
  1、 使用企业管理器建立登录账户6 s: K' l# f6 J' \
  2、 使用系统存储过程建立登录账户, L* r) a9 _" [
  (1) 建立SQL Server身份验证的登录账户:  c4 ]% D3 n* [6 w
  sp_addlogin [@loginame=]’login’[,[@passwd=]’password’][,[@defdb=]’database’]3 T( U+ R) o- }3 ~" E# T
  其中:
- h5 r5 {- A7 ?+ A1 F* C0 u; x  (A)[@loginame=]’login’:登录账户名;
$ n5 m. y; g' u$ T4 w1 F/ M  (B)[@passwd=]’password’:登录密码;2 `: c% K/ a- I/ v
  (C)[@defdb=]’database’:连接的数据库。
. x0 p, e$ U6 Z  z; M: X4 t  (2) 建立Windows身份验证的登录账户9 I* D9 {. k+ Q) P- y. F
  sp_grantlogin [@loginame=]’login’  A2 k# W. H$ W. h! U# Z& A
  其中:[@loginame=]’login’为要添加的Windows NT用户或组的名称,Windows NT组和用户必须用Windows NT域名限定,格式为“域\用户”
$ {; r5 S6 G! j$ R 14.3.3 删除登录账户
& b1 L$ c/ _- Z' ^  1、 使用企业管理器删除登录账户;' O1 Q- ]) Y2 q5 N6 N" ~( p* p
  2、 使用系统存储过程删除登录账户:
% {( p" X/ f* g7 ?6 F# H  (1)删除SQL Server身份验证的登录账户:
$ g- f7 P+ f/ f; d  sp_droplogin [@loginame=]’login’5 o7 K* O4 v2 b* m
  其中:[@loginame=]’login’:将被删除的登录账户名;
; e6 q$ d& k; ]6 Z" X# [  (2)删除Windows身份验证的登录账户
* ]! N  w3 [2 ~3 X) C3 S5 @! n  sp_revokelogin [@loginame=]’login’
( K9 f4 l" N( O/ p9 X( S$ n0 G  其中:[@loginame=]’login’为要删除的Windows NT用户或组的名称,Windows NT组和用户必须用Windows NT域名限定,格式为“域\用户”1 Z& e' d6 ]" G7 f3 s! j: n1 u: U
  14.4 管理数据库用户3 [/ X* p! }; x- L3 {3 M" d
  14.4.1 建立数据库用户
- o( P/ b8 N' E; A  1、 使用企业管理器建立数据库用户;; Z# B+ i" ^  d! H6 \
  2、 使用系统存储过程建立数据库用户:
% s; Q& g8 Q9 i+ ?, |! [  a  sp_adduser[@ loginame=]’login’[,[@name_in_db=]’user’][,[@grpname=]’group’]
+ J9 |) I% o' W  其中:0 y% S$ e# W% B) [
  (1)[@ loginame=]’login’:登录账户名,login必须是已有的SQL Server登录账户或Windows NT用户名* k0 Y3 P1 ?" s4 }* f
  (2)[@name_in_db=]’user’:新数据库用户名,如没有指定,则user与login名相同;4 s% N& R1 i% g- t: N4 f
  (3)[@grpname=]’group’:角色名,新用户自动地成为此角色的成员,group必须是当前数据库已有的角色。
1 y6 J" E  {# k  a  J  Q  14.4.2 删除数据库用户
+ }  B; |" H. i8 W/ g% Z  1、使用企业管理器删除数据库用户;
. q" O( z5 s4 t2 ~# e+ e7 E/ g  2、使用系统存储过程建立数据库用户:; @. T" b4 G- y) n- D* h2 \' t
  sp_dropuser[@name_in_db=]’user’
( g3 w5 A# N$ l, D  14.5 管理权限+ P: K* n/ r& u; ~7 X( H: ^# i
  14.5.1 SQL Server权限种类+ U$ T( X) [1 Y! v2 e' H" G0 o
  1、 对象权限:指用户对数据库中的表、视图等对象中数据的操作权限,相当于数据库操作语言(DML)的语句权限;
: e- O; d+ `' J. ]) L  2、 语句权限:相当于数据定义语言(DDL)的语句权限,专指是否允许执行:CREATE TABLE、CREATE VIEW等与创建数据库对象有关的操作;9 E1 u7 ?6 \, O" x
  3、 隐含权限:指数据库管理系统预定义的服务器角色、数据库角色、数据库拥有者和数据库对象拥有者所具有的权限
3 W. x! f; w/ M6 @  14.5.2 权限的管理5 l8 i  B1 H6 l4 q. X# a
  权限的管理包括:
! Y0 U) d7 E9 T2 c: @6 L  (1) 授予权限:允许用户或角色具有某种操作权;) c4 G  j' Z+ S. q8 _
' k# y! C% c0 @! A$ N
  (2) 收回权限:不允许用户或角色具有某种操作权,或收回曾经授予的权限;
回复

使用道具 举报

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

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

</p>  (3) 拒绝访问:拒绝某用户或角色具有某种操作权限;; Y. ~$ i$ T+ X7 A) `2 i3 b
  1、 使用企业管理器管理数据库用户权限;
4 p! v! n& c2 B# p1 P. J  2、 使用企业管理器管理语句权限;. P' u# c8 ^' \
  3、 使用Transact-SQL语句管理对象权限; j1 j) C9 O+ k- T; _; |
  (1) GRANT语句:用于授权;( L+ ~3 a8 `% M
  GRANT 对象权限名 [,…]ON{表名|视图名|存储过程名}
' d1 S4 J5 }7 X  TO{数据库用户名|用户角色名}[,…]/ S& {3 |$ I7 y1 E0 B
  (2) REVOKE语句:用于收回权限;
& T( a0 g  Q" u6 N; x9 q6 f  REVOKE 对象权限名 [,…]ON{表名|视图名|存储过程名}
+ C& W+ E6 v" w0 A  TO{数据库用户名|用户角色名}[,…]! G4 `! c' D- H/ S
  (3) DENY语句:用于拒绝权限。
1 W7 q! {2 V6 `! }% n# f* L; P  DENY 对象权限名 [,…]ON{表名|视图名|存储过程名}, x* o& P  ^( r! i- Q8 J* S
  TO{数据库用户名|用户角色名}[,…]
+ e* j5 h* _7 e. o! k' Z  4、使用Transact-SQL语句管理语句权限
" b1 N: f& t7 y" w  K7 m  (1)授权语句:* n% S6 I2 G' y& W7 V- K) \; P
  GRANT 对象权限名 [,…] TO {数据库用户名|用户角色名}[,…]
' p/ \  k% q1 Y! c2 B% u: @  (2)收权语句;) y3 ?6 Q. X! ~$ S8 C( Z% g
  REVOKE 对象权限名 [,…] FROM {数据库用户名|用户角色名}[,…]( C9 d+ ~7 ?0 v8 j' Q! b+ w9 N% E
  (3)拒绝权限。
* a& x. ?2 j. @- s  DENY 对象权限名 [,…] TO {数据库用户名|用户角色名}[,…]
  e( {5 G' ?2 T8 _  14.6 角色
2 O1 b* `6 R# g% L5 C# u& [  ?6 e  14.6.1 固定的服务器角色
% E4 f1 x7 a3 y  是在服务器级上定义,这些角色具有完成特定服务器级管理活动的权限,用户不能添加、删除或更改固定的服务器角色。用户的登录账户可以添加到固定的服务器角色中,使其成为服务器角色中的成员,从而具有服务器角色的权限。
& R( [3 }1 {9 R) X) U/ q5 }固定的服务器角色2 g4 O. C7 M2 E$ B" M8 g
描述# d* T  J1 o# W/ w
Sysadmin8 o8 P! u. A& W5 K& T9 {+ B9 S- D
可在SQL Server中进行任何活动,该角色的权限包含了所有其它固定的服务器角色权限
6 P( ~& ?- |, p- FServeradmin
7 l0 |) G6 W+ C' g. I( a5 n2 q配置服务器范围的设置
4 T' F- r5 k" g7 FSetupadmin8 D! U2 R' S0 u2 @, h& [
添加和删除链接服务器,并执行某些系统存储过程! k' T0 W0 S* R% e7 S: Q
Securityadmin& ~- O2 U! g5 \4 H6 P5 O
管理服务器登录账户6 j) ~8 Q! F+ ~0 s9 H4 d+ t
Processadmin) g# @1 U8 l# |9 P
管理在SQL Server实例中运行的进程
' _0 K7 s# D% G3 }+ eDbcreator. D% X+ N7 _$ W
创建、更改和删除数据库
: q# j0 R* O0 i3 V8 W9 S: {5 y/ `& DDiskadmin
9 {! u! C, b9 R  b, y) c( i7 g- t管理磁盘文件" g. Q. j3 L9 e. S/ P
bulkadmin
+ V0 T- i" U8 y! q, T2 c执行BULK INSERT语句4 D% e) x1 Y# J

- P' ]4 F* h$ a2 y2 v! A  固定的服务器角色的成员是系统的登录账户,系统内置的
8 a* W, H# T7 k; J  (1) BUILTIN\Administrators组;
1 D+ e( `! a1 d! @/ B" {  (2) Sa9 o$ ^( h& Y; c. W' W8 l
  (3) 域名\Administrators/ e/ p+ e9 U9 Q5 S3 `  p3 b: t8 ]
  自动是sysadmin角色中的成员。
, w3 m1 d  s5 S1 p+ H  1、 添加固定的服务器角色成员
" p/ M+ s1 m" E# ^( {  (1) 用企业管理器实现;
) S2 d- W5 N+ U- h( a. Y2 h  (2) 用系统存储过程实现;
& B# q. @3 M' f  sp_addsrvrolemember[@loginame=]’login’[@rolename=]’role’6 T6 z* u. t/ J
  其中:
8 i. f7 O  \6 T6 y  [@loginame=]’login’:添加到固定服务器角色的登录名称;$ ]- O  |/ d' `# x& U  j, \' U
  [@rolename=]’role’:要将登录添加到的固定服务器角色的名称。
% m* u$ O6 k5 N+ J3 H, _3 e  2、 删除固定的服务器角色成员
6 F, K) w. q9 F 14.6.2 固定的数据库角色  n6 h# R0 x  t( Q; w
  是在数据库级别上定义,用户不能添加、删除或更改固定的服务器角色。用户的登录账户可以添加到固定的数据库角色中,使其成为成员,从而具有数据库角色的权限。5 V4 y! Z5 l+ |3 t& m5 B
固定的数据库角色
3 h8 A/ K( Z) ?3 [& L0 W描述
" P7 }) M, M6 D0 ~$ a& QDb_owner+ I8 R4 c4 R: O3 V( m$ G
在数据库中拥有全部权限5 L/ t5 r2 ?8 c
Db_accessadmin
% z" Q& o2 R* S$ F' r8 w8 o8 ?可以添加或删除用户ID
. f# P4 E3 H4 X( h4 YDb_securityadmin3 l' D2 t  a8 G, F. g& \
可以管理数据库角色和角色成员,并管理数据库中的语句权限和对象权限$ j6 E% E: \9 ~' ^" k
Db_ddladmin. h; P/ G3 {6 E! @4 w! K9 }
可以建立、修改和删除数据库对象(运行所有的DDL语句)) V, B! F4 \5 B( ]8 G5 ^
Db_backupoperator/ K: P6 `- T0 i
可以进行数据库的备份、恢复操作: T; Z1 N4 S. ~" O% f/ A
Db_datareader2 p. k2 J0 j+ I+ \; X% `: t
可以查询数据库中所有用户表中的数据6 R# g7 H$ y/ V; c9 Q
Db_datawriter8 i3 x/ G7 Z% x
可以更改数据库中所有用户表中的数据
  `8 z) Z( R4 R6 @  P/ K1 J, Y4 fDb_denydatareader& u* @2 P. C$ U/ N
不允许查询数据库中所有用户表中的数据
4 C. m! t) ?; UDb_denydatawriter
5 Y: w2 }# n9 M) }9 g  v% V不允许更改数据库中所有用户表中的数据4 V& \) e& T  z4 q5 E% y
public: x* `! }0 V/ Q! |+ _+ ~
默认不具有任何权限,但用户可对此角色进行授权
8 U( [$ g. f% {9 w8 {2 F+ o# H0 H7 V5 \3 i' J  c. D
  其中public角色是一个特殊的角色:5 T7 a* \7 [$ b8 j
  (1) 数据库中的每个用户都自动地是public角色成员,用户不能从public角色中添加和删除成员;* ^1 ?8 T, Y; x
  (2) 用户可以对这个角色进行授权。
2 m9 S; b0 K0 l4 g: Y  1、添加固定的数据库角色成员
0 [: Z/ T$ }4 M1 P/ c  (1) 用企业管理器实现;: J7 I/ d7 F8 E! O$ t
  (2) 用系统存储过程实现;
# e. M8 K. }: c9 X  sp_addrolemember [@rolename=]’role’,[@membername=]’security_account’
; [( P" I( S" w7 T. y  其中:6 }+ ?" k+ F8 x, n  N( l. n
  [@rolename=]’role’:当前固定数据库中的角色名称;
' D, y$ T! v* D  [@membername=]’security_account’:添加到角色中的用户名。
& J+ D/ K3 S) O; e4 H% ]0 R$ ^  2、删除固定的数据库角色成员
; e0 N+ ?9 W: z) P' u( f4 i' b; E  14.6.3 用户自定义的角色4 a& T! `* S3 H. U( ~
  属于数据库一级的角色,用户可根据实际工作职能定义一系列角色,并给每个角色授予合适的权限。只需将数据库用户放置到合适的角色中即可。
# X+ |! t3 O: S0 @4 I. }6 O/ ~# G  1、建立用户自定义库角色
" r* @$ Q1 h2 W, S. ^3 u* X  (1) 用企业管理器实现;( C, o8 C( m% t" R) Z! V6 [
  (2) 用系统存储过程实现;
% D& ?0 ]6 c3 G" \5 _% `  sp_addrole [@rolename=]’role’,[@ownername=]’owner’
% U2 x  i' w5 A5 t# R  其中:
. }% |6 X: W+ |6 F! C* U3 G" C& V  [@rolename=]’role’:新的角色名称;" M0 V; L! n8 s" ~# [9 e% s
  [@ownername=]’owner’:新角色的所有者。0 g0 y4 z. _9 g) F
  3、 为用户定义的角色授权;
9 {. p0 H4 Y9 Y4 p/ }  4、 添加和删除用户自定义角色成员
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 19:46 , Processed in 0.262888 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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