</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、 添加和删除用户自定义角色成员 |