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