a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 735|回复: 2

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

[复制链接]
发表于 2012-7-31 20:48:14 | 显示全部楼层 |阅读模式
第14章 安全管理  14.1 安全控制
6 ^9 o; y  d8 C  14.1.1 安全控制模型( \5 Q2 k4 h* K: Q6 B+ G$ X

. f( _# I8 C1 u' m3 ^  身份验证 操作权控制 文件操作控制 加密存储与冗余
$ ~8 O0 J- w- o' N: S  14.1.2 数据库权限的种类及用户的分类" `) M& O/ u, P9 U% y! T7 r* V
  1、 权限的种类- b1 \7 T' T" s& [9 f- J
  (1) 对DBMS进行维护的权限;
2 f, D, O: o7 g& W% W! Y  [$ L, {  (2) 对数据库中的对象和数据进行操作的权限。
( t  s( s9 T. S" P* u1 N9 m6 Y2 H  (A) 对数据库对象的权限,包括创建、删除和修改数据库对象;, Y* X) m% y) h1 a0 R8 \+ c5 R
  (B) 对数据库数据的操作权限,包括对表、视图数据的增、删、改、查权限。: K8 u. t% L8 |$ q/ {
  2、 数据库用户的分类6 R% V# a' M+ `  ]$ i% _
  (1) 数据库系统管理员(sa):在数据库中具有全部的权限;. e  K  w$ x2 X( }: W! K2 G
  (2) 数据库对象拥有者:对其所拥有的对象具有一切权限;, i2 @: L1 Y  |# \$ b
  (3) 普通用户:只具有对数据库数据的增、删、改、查权限。
  \5 }: t$ B9 I& q  14.2 SQL Server 的安全控制+ d  m& ~/ x# t% X0 ^8 ~
  1、 用户访问SQL Server 数据库中的数据中,必须经过三个认证过程" W* a$ s' T3 b1 i+ v" ?$ O: c% b3 o
  (1) 身份认证:验证用户是否有连接到数据库服务器的“连接权”;
, z" Z8 {/ H. d+ n) B/ E; ^  (2) 验证用户是否数据库的合法用户;
& |6 a- x7 `  }  ^+ |8 ^/ V" Q( N  (3) 验证数据库用户是否具有要进行的操作的操作权限。) f( t* J' C$ ?- m! `/ D- _
  2、 SQL Server的用户有两种类型:
6 \7 Y% q( K/ x0 g$ X$ W! g- v  (1) Windows授权用户:来自Windows的用户或组;
; d6 |/ q. t- i' C6 J  (2) SQL授权用户:来自于非Windows的用户,也将这种用户称为SQL用户。
/ ^- M  R# T* b( c- `1 b! D  3、 SQL Server 为不同用户类型提供不同的安全认证模式:
% }* x( V" o# @; J  (1) Windows 身份验证模式:允许Windows NT或Windows 2000用户连接到SQL Server,在这种模式下,SQL Server将通过Windows来获得用户信息,并对账号和密码进行重新验证,当使用Windows身份验证模式时,用户必须先登录到Windows,然后再登录到SQL Server;+ {6 @2 d, A; {; n1 j7 w
  (2) 混合验证模式:表示SQL Server接受Windows授权用户和SQL授权用户。
0 o5 ~! r+ t. e3 o6 Z  14.3 管理SQL Server 登录账户
5 j+ |7 _9 V: ^( g. s  14.3.1 系统内置的登录账户
4 v$ P; V6 g. W0 T( ]  1、 BUILTIN\Administrators:是一个Windows组账户,表示所有的Windows Administrators(系统管理员)组中的用户都可以登录到SQL Server,此组中的成员同是具有SQL Server的系统管理员权限;! U0 y- B, {3 v
  2、 Sa:SQL Server验证模式的系统管理员账户;/ u9 L5 Z0 }& M$ E
  3、 域名\Administrators: Windows的系统管理员同时也是SQL Server的合法用户,并且具有SQL Server的系统管理员权限。% W* F3 M3 |# v, l" K% ]6 ~
  14.3.2 建立登录账户9 \( q9 ~9 y( s0 @8 _
  1、 使用企业管理器建立登录账户% N/ @/ p6 e! R# N5 I8 n8 M3 m  ]% U* G
  2、 使用系统存储过程建立登录账户
5 {  l* n# Y1 D. b: p  (1) 建立SQL Server身份验证的登录账户:/ l3 K; L- e% s* o) }4 F
  sp_addlogin [@loginame=]’login’[,[@passwd=]’password’][,[@defdb=]’database’]: v3 e# I* c) x% R; b
  其中:
+ f6 F# t1 j  P; U! U) t4 v  (A)[@loginame=]’login’:登录账户名;
& K: B: u+ d& h/ h9 s1 y7 G  (B)[@passwd=]’password’:登录密码;
8 @2 ?  P/ |/ L7 v3 I  `  (C)[@defdb=]’database’:连接的数据库。3 ]: M7 Q7 t. c8 p3 m
  (2) 建立Windows身份验证的登录账户+ `2 }2 X3 w2 _, T8 m" m+ l7 ?
  sp_grantlogin [@loginame=]’login’
8 p# M  J/ p, ?$ R2 N7 t  其中:[@loginame=]’login’为要添加的Windows NT用户或组的名称,Windows NT组和用户必须用Windows NT域名限定,格式为“域\用户”
回复

使用道具 举报

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

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

 14.3.3 删除登录账户  1、 使用企业管理器删除登录账户;
. ?9 P& o# I, h, J6 p1 d) B  2、 使用系统存储过程删除登录账户:+ ?# t" h7 ]3 j
  (1)删除SQL Server身份验证的登录账户:
- _6 I' v( J1 b, W* @9 j  sp_droplogin [@loginame=]’login’6 a! k3 ^- g3 t/ n1 d9 O* e5 N
  其中:[@loginame=]’login’:将被删除的登录账户名;
7 l& j/ |3 Y/ r1 c  (2)删除Windows身份验证的登录账户. Y% J$ k" [) b% }( F+ F4 w
  sp_revokelogin [@loginame=]’login’
6 Q( L2 \" z' u. B) j  其中:[@loginame=]’login’为要删除的Windows NT用户或组的名称,Windows NT组和用户必须用Windows NT域名限定,格式为“域\用户”
- _1 Q2 Z! [, N/ U- U+ E6 [- ]2 q  14.4 管理数据库用户2 P! O- O4 _+ o
  14.4.1 建立数据库用户
; W" J% F6 m( @( C+ x- C. Z8 C  m  1、 使用企业管理器建立数据库用户;& |. t8 K3 g4 g3 P& u4 f1 [
  2、 使用系统存储过程建立数据库用户:$ `3 v/ X; _" i8 d1 Z
  sp_adduser[@ loginame=]’login’[,[@name_in_db=]’user’][,[@grpname=]’group’]
3 D8 b& A; R; r+ t& h# n  v' @( y9 p  其中:
6 d1 Z% ?$ w, @! a7 l( C  (1)[@ loginame=]’login’:登录账户名,login必须是已有的SQL Server登录账户或Windows NT用户名
; Q7 q+ a. }4 s% v1 m! C  (2)[@name_in_db=]’user’:新数据库用户名,如没有指定,则user与login名相同;
* ]9 ~# X) V6 i/ M! e8 i8 `+ r  (3)[@grpname=]’group’:角色名,新用户自动地成为此角色的成员,group必须是当前数据库已有的角色。
2 e; ]# q* Y/ W" ]  14.4.2 删除数据库用户; T/ z' ]% l& S
  1、使用企业管理器删除数据库用户;
; k" \/ g. U$ ^1 @; B* C1 H  2、使用系统存储过程建立数据库用户:
5 N3 p# i' \! J9 p* j- {5 K1 }  sp_dropuser[@name_in_db=]’user’( }# L8 H( `1 B; W# @' X4 `  K
  14.5 管理权限
8 u. y$ Z4 e- w$ T: R* H6 h  14.5.1 SQL Server权限种类" T4 O* a9 ^( _/ P: A6 I# b
  1、 对象权限:指用户对数据库中的表、视图等对象中数据的操作权限,相当于数据库操作语言(DML)的语句权限;
# B; ^* T) U0 y( G: e6 d0 t6 _! o# \  2、 语句权限:相当于数据定义语言(DDL)的语句权限,专指是否允许执行:CREATE TABLE、CREATE VIEW等与创建数据库对象有关的操作;6 ]1 O, Q; `3 K0 s9 V0 b, ~+ {6 S
  3、 隐含权限:指数据库管理系统预定义的服务器角色、数据库角色、数据库拥有者和数据库对象拥有者所具有的权限
" V# s) ?! Z( S; V  14.5.2 权限的管理
! H* I; F2 R: R( N+ k* d  权限的管理包括:, ^0 L! ]8 @. c% M4 G
  (1) 授予权限:允许用户或角色具有某种操作权;* W5 _' Y8 s- q0 w# t* }6 Y0 A9 E4 [
  (2) 收回权限:不允许用户或角色具有某种操作权,或收回曾经授予的权限;  w5 p( o9 y% p1 E7 u$ I
  (3) 拒绝访问:拒绝某用户或角色具有某种操作权限;& a& b& N* d& H
  1、 使用企业管理器管理数据库用户权限;1 I, F$ _2 n- a& q" c! H7 p% V5 g+ R
  2、 使用企业管理器管理语句权限;
# X8 @. h! B0 E  3、 使用Transact-SQL语句管理对象权限
, V) O* p1 x) N  (1) GRANT语句:用于授权;5 r5 Y6 Z) F0 u& U3 S
  GRANT 对象权限名 [,…]ON{表名|视图名|存储过程名}) m6 E9 k! W' t, N9 {, [
  TO{数据库用户名|用户角色名}[,…]% Z1 ?6 k6 R0 }" u9 |. E
  (2) REVOKE语句:用于收回权限;# x; K0 l1 r% C  ?! }4 L+ c
  REVOKE 对象权限名 [,…]ON{表名|视图名|存储过程名}2 q0 s7 X' w$ z% k( p/ A
  TO{数据库用户名|用户角色名}[,…]% B! K5 S5 A! A' g0 x( _
  (3) DENY语句:用于拒绝权限。
# x; k9 L+ _4 M' u! U  j  DENY 对象权限名 [,…]ON{表名|视图名|存储过程名}9 ~1 L; x+ K5 S' e% Y+ ]; L$ [
  TO{数据库用户名|用户角色名}[,…]
8 I) g& A1 s: s7 {: L3 l7 m; f  4、使用Transact-SQL语句管理语句权限' \/ X- d0 R7 `' r1 O
  (1)授权语句:! J% y. c( m3 |: |% c, t
  GRANT 对象权限名 [,…] TO {数据库用户名|用户角色名}[,…]7 z( O( n1 A9 a& j( [) s  I
  (2)收权语句;
7 _# w" m; ?8 `* P5 [; Q7 Q  REVOKE 对象权限名 [,…] FROM {数据库用户名|用户角色名}[,…]
  x  Z; O+ M! D: I; f( p; _) j, f  (3)拒绝权限。; |) B1 I0 U8 U, m5 z- E
  DENY 对象权限名 [,…] TO {数据库用户名|用户角色名}[,…]
4 N  v. J2 B' a$ W# X4 f  14.6 角色
; K* J5 a" ]& V& `& @4 u  14.6.1 固定的服务器角色/ S6 F: `1 |" o, T  D
  是在服务器级上定义,这些角色具有完成特定服务器级管理活动的权限,用户不能添加、删除或更改固定的服务器角色。用户的登录账户可以添加到固定的服务器角色中,使其成为服务器角色中的成员,从而具有服务器角色的权限。
! x/ x$ g9 _$ D固定的服务器角色
6 g' y- a& a' v( ^! n8 Z描述
2 v& V: p; o, m- xSysadmin- d6 P; a+ N) v- L
可在SQL Server中进行任何活动,该角色的权限包含了所有其它固定的服务器角色权限) [1 _  G  W; X* z' R
Serveradmin
: k' R$ m& n9 b4 I" y. l配置服务器范围的设置$ V# C. S( V" \( \
Setupadmin
5 C! f% F( k2 y' G* k添加和删除链接服务器,并执行某些系统存储过程, W8 n3 @" N% r. ^7 R
Securityadmin
' U* k, l7 V+ [  z管理服务器登录账户
3 h/ Z8 Y/ z6 n" F& X* B" @2 x' xProcessadmin
9 O. O' c; H4 w- D* t9 e$ v管理在SQL Server实例中运行的进程
/ @1 [* F* o, I$ f+ p8 |$ Y  a# XDbcreator: W. l/ d" O1 [/ K# e3 _. Z( @
创建、更改和删除数据库
: C) F$ L- U+ w+ X4 {5 h. bDiskadmin& y) r  |( x5 W' ]3 I
管理磁盘文件
& D- _( Y. w+ A8 cbulkadmin4 o% D! i/ ~# E) [: I) T9 `
执行BULK INSERT语句9 t# w# H4 O, W7 C" `7 k8 M
. o% Z3 Z; ^5 z- A
  固定的服务器角色的成员是系统的登录账户,系统内置的
5 ^4 a" R4 D* P& ~: w1 a# b  (1) BUILTIN\Administrators组;
8 h; G! I. y$ M7 e, a1 o: N. b8 Y  (2) Sa
8 R5 B6 c& x$ F/ Z5 _6 t2 M  (3) 域名\Administrators
3 j& h' o2 R' y6 ]. m$ x: i  自动是sysadmin角色中的成员。
" W- {/ I, W/ F/ Y. g( A8 V  1、 添加固定的服务器角色成员
, e+ g* f" z# @1 {. ]  Q  (1) 用企业管理器实现;
, a. E# l9 d: T. S* }& M  (2) 用系统存储过程实现;
) w) ~, _3 y* \: U5 O$ x. O. @! G  sp_addsrvrolemember[@loginame=]’login’[@rolename=]’role’) r# P, Y; w8 ]/ c2 a( N
  其中:$ b8 R) k! ]. s5 Z( u
  [@loginame=]’login’:添加到固定服务器角色的登录名称;
4 C% j7 X% {  v& q) h. z  [@rolename=]’role’:要将登录添加到的固定服务器角色的名称。
2 @  x3 a! U1 s) d1 j. O6 {8 @  2、 删除固定的服务器角色成员
回复 支持 反对

使用道具 举报

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

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

 14.6.2 固定的数据库角色  是在数据库级别上定义,用户不能添加、删除或更改固定的服务器角色。用户的登录账户可以添加到固定的数据库角色中,使其成为成员,从而具有数据库角色的权限。$ \3 ]  T1 W9 E7 h9 ~
固定的数据库角色6 X# g. Y1 i* f/ W7 h6 O
描述
4 h, e* L1 h0 E8 S$ O) g4 G: @* K# ]Db_owner
7 b4 X3 W/ j. h' e在数据库中拥有全部权限
: ~# \6 z3 S- ]* E" d; aDb_accessadmin
8 H# ^) L+ T2 W, A6 \1 P可以添加或删除用户ID
$ M* K  L8 S+ k3 `Db_securityadmin
7 W& d- G2 N# d, m5 z可以管理数据库角色和角色成员,并管理数据库中的语句权限和对象权限
% R6 w3 G" H( z; b/ b# lDb_ddladmin
8 ^; g" \5 w+ B2 |% E6 S9 U可以建立、修改和删除数据库对象(运行所有的DDL语句)1 p1 i0 ]5 z! u+ W2 g2 A# F
Db_backupoperator
# [! v, B* k6 s可以进行数据库的备份、恢复操作
% O1 e5 x. o& i& l7 M* g' {" n' P2 m, XDb_datareader
; z, M5 W* u6 h- }) B7 ^可以查询数据库中所有用户表中的数据
' L8 Q. \# b- V/ V& [( G! `Db_datawriter
1 h5 R* T  S5 [; A: \可以更改数据库中所有用户表中的数据" ~+ f+ J2 R/ b, ^8 b8 M' a2 M
Db_denydatareader9 Y& g4 U0 `; w
不允许查询数据库中所有用户表中的数据. U$ ^0 |" a8 U  P5 _
Db_denydatawriter
, L- K2 k2 Z9 a- t8 B不允许更改数据库中所有用户表中的数据3 W1 [+ U' M4 ^3 w3 C7 a
public' `  h: e6 a! _3 J
默认不具有任何权限,但用户可对此角色进行授权# n2 P. P0 [% |( r) Z

- D- w! ]: d* H' i2 a, g: @  其中public角色是一个特殊的角色:
) T$ u9 {, Z' a2 r  (1) 数据库中的每个用户都自动地是public角色成员,用户不能从public角色中添加和删除成员;
  j1 Z* o! L3 ~! C1 r4 I6 y! G4 `5 s  (2) 用户可以对这个角色进行授权。' U' l8 ^7 h) X. v8 P6 v
  1、添加固定的数据库角色成员" L# f4 }# w# K1 C+ G" p
  (1) 用企业管理器实现;- l, w9 \& R; U9 G' w7 {% R
  (2) 用系统存储过程实现;
" `. a" c) P) Z/ b4 N  sp_addrolemember [@rolename=]’role’,[@membername=]’security_account’* G7 ]3 y! b* j- q
  其中:
! ~- t, K" J8 J8 U  X8 ^5 Z  [@rolename=]’role’:当前固定数据库中的角色名称;2 B! |6 `& r* o" e; e" Z* f
  [@membername=]’security_account’:添加到角色中的用户名。
2 R0 R' p1 [6 M" H; C1 w6 x7 ]  2、删除固定的数据库角色成员+ Y, I$ `; _. I: S( g  _/ V4 B: n
  14.6.3 用户自定义的角色/ J: l1 D4 e# r0 G
  属于数据库一级的角色,用户可根据实际工作职能定义一系列角色,并给每个角色授予合适的权限。只需将数据库用户放置到合适的角色中即可。& U; a- D/ n' ]0 m# D7 \8 @% i
  1、建立用户自定义库角色; e2 z% y) U& I6 F2 j: X
  (1) 用企业管理器实现;
' X6 `# ]: e' ?# R: O2 L  (2) 用系统存储过程实现;
: C9 d* s7 s+ h( H; I4 P! j, Y  sp_addrole [@rolename=]’role’,[@ownername=]’owner’. @! S6 m% @/ m
  其中:
/ }5 X. @1 m2 w* _! E; K. j  [@rolename=]’role’:新的角色名称;, R" l: _& U2 }% \' {
  [@ownername=]’owner’:新角色的所有者。
; V% T* t! I& p; l9 s& A2 k  3、 为用户定义的角色授权;
9 j+ r, Y8 y0 |# n8 J  4、 添加和删除用户自定义角色成员
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 02:28 , Processed in 0.235056 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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