QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 1601|回复: 0
收起左侧

[分享] SQLSERVER2000功略(3)-数据库的登陆及其用户权限

[复制链接]
发表于 2009-2-17 10:24:52 | 显示全部楼层 |阅读模式 来自: 中国江苏苏州

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
SQLSERVER2000功略(3)-数据库的登陆及其用户权限
6 P# T! I6 i' @5 Z! Z. a$ USQLSERVER2000
功略-数据库的登陆及其用户权限
& ^, \1 h" {6 Y  Q7 G5 x% o; N0 j# f说过了两章纯粹的理论,是不是有乏味的感觉,好,我们从这一讲就进入实质的管理阶段。首先,我们讨论的是SQLSERVER安全管理中的登陆和权限问题。3 y; O' Q* h2 W1 `) f
SQLSERVER
的登陆是安全管理的第一关。这个决定了那些人可以使用SQLSERVER(就像进屋时的房门钥匙)。关于登陆控制,SQLSERVER则采用了两种不同的检查方式:windows验证和windowssqlserver混合验证。前者就是我们登陆windows时的用户帐号,而后者则是在保留前者的前提下也允许SQLSERVER中建立的登陆帐号。这也是为用户提供方便的选择。
( s/ n0 g, M, O+ V' q5 u我们拥有了登陆的帐号,就可以进入SQLSERVER的控制中心,那我们可以做些什么哪?这个肯定是有控制的进行的。SQLSERVER中的访问权限分为两方面,分别是:服务器本身的操作权限和数据库的访问权限。我们分别加以简介:3 F! u1 q% J. A. o9 a
服务器的操作权限是从真个服务器来说的,是面向所有数据库的定义。例如:是否有权创建或者删除登陆帐号,是否可以建立数据库等等。这些也就是通过设置服务器角色(server role)来实现的。SQLSERVER内建了七个服务器角色,分别代表七种服务器工作的操作权。7 ~9 s4 w: b& R( A2 U8 }1 g/ F
数据库的访问权限就是针对某一个数据库而言的。他可以分为两层,第一层是限制何人访问数据库,第二层限制可访问数据库中的那些表,视图和存储过程,以及是否可以用select,insert,update等等。这个权限往往是通过数据库角色得以实现的。
# x& }) w/ d! [* @% \9 E  d(服务器角色不可以自定义,数据库角色可以自定义)
& h0 E$ W5 @* r5 X+ f仅仅知道上面这些概念是不行的,因为SQLSERVER中的权限是比较复杂的,因为彼此之间可能存在某些权链。所以仅仅概念是不容易说清的,我们讨论的就是基础的东西,懂得了这些在真正工作中才可以更好的掌握管理技能。我们简单的谈谈权链的问题吧!
5 O. [, @+ R8 a. ]# H& e由于每个对象都有他自己的拥有权信息,这个对象可能和其他对象存在一定的依存关系,比如:一个视图是从另外一个视图建立过来的。这些相互依存的对象关系可能拉的很长,因此相依存的对象的拥有权就形成一个由上而下的链结,这在SQLSERVER中就称作拥有权链(Ownership Chain)。正是由于这样,可能所产生的访问权限变得非常复杂。所以,我们在这里提出以视图和存储过程来限制访问范围。通过视图确定用户可以访问的内容,然后把视图的相关权限赋予具体的用户,这样可以有效的减轻权限设置的工作量(特别是用户访问范围跨度较大的情况下)。除了视图,我们也可以自定义存储过程来对数据的访问加以限制,即把一组可查询某特定数据的语句存成存储过程,然后将其execute权限设置给用户,用户就可以执行他来取得数据了。这样省去了很多复杂的授权过程,是不是很方便呀!8 j' t. ^  J# M& F; C
简单的说了说这些,我们再来谈谈SQLSERVER中特殊的东西:sa帐号,public数据库角色,guest数据库用户。
0 z, ?; c7 s; n" b. X3 h) BSa
SQLSERVER默认的管理员帐号,主要是为了向下兼容而设置的。这个也就是安装好SQLSERVER时就有的帐号,而且权限极大,所以在安装过程中最好把他的密码进行设置,不要为空。这个帐号相当于服务器角色中的system administrator,而且不可以删除。
+ G) F9 ]; }" v, |; l( yPublic
数据库角色是一个公共的数据库角色,也就是说当你新建一个数据库角色的时候,默认的就属于这个角色。这个也是不可删除的。所以为了安全期间,我们对public数据库对象不要赋予过多的权限(除非有这个需要)。: ]1 L0 W9 O' r7 q1 |0 d
Guest
是一个特殊的数据库用户,类似于windows NT/2000下的guest帐号,都是给未经授权的用户提供某种程度的访问权限。如果不需要这个用户可以将其删除。
$ S1 a' M5 ~* B( }  J说了这些概念,其实现都是通过企业管理器实现的,我们就这些谈谈用相应的系统存储过程:+ @5 m5 ~( M( T! N% s/ z& `/ r
登陆管理:sp_addlogin 新增帐号
8 F9 o- o) i; k5 ~0 n# B/ m4 Osp_droplogin
删除帐号
: i7 s$ C6 b: Q* H* P: O# d' C  f: _sp_grantlogins
允许某windows帐号访问
6 Z0 U' V. w/ J9 Q6 [& h, Z2 J& Xsp_denylogins
禁止某windows帐号访问
9 V4 X, |7 y5 Q3 [+ Fsp_revokelogins
删除某windows帐号访问4 U4 o" E/ J8 ^5 n) H9 X+ P
sp_helplogin
查看帐号信息
! g  W6 u5 m+ Z. N7 J! bsp_addsrvrolemember
将某用户添加到服务器角色
1 [: j/ k8 i( m3 E6 h6 e6 X$ f1 Asp_dropsrvrolemember
将某用户从数据库角色中删除4 W( K( r' ]2 v( c
sp_helpsrvrole
查看服务器角色的信息2 r; _( e0 A6 y8 j
数据库用户管理:sp_grantaccess 建立数据库用户; D2 J' D1 A- S5 e% T9 e. d( H, B
sp_revokedbaccess
删除数据库用户
2 I+ o/ L- C. G! z& isp_helpuser
查看用户信息
0 N: |: `: E4 I5 s数据库角色管理:sp_addrole 建立数据库角色0 C, N& s% r. E( Q' K  j) U
sp_addrolemember
将用户加入数据库角色
" K+ P5 B6 }& l$ `' B/ }' ~sp_helprole
查看数据库角色信息
5 u" |% |0 L8 N' V6 F4 g- V  jsp_helprolemember
查看某数据库角色的所有成员1 H3 s/ l" F( @- a6 @( d- e
sp_droprole
删除角色
1 r% S- U2 f+ \8 G% Qsp_droprolemember
删除角色中的某一成员3 B; X& O% y& H' j$ c
好了,看了上面的不要感觉麻烦呀,这可是让你高效工作的宝贝呀,熟能生巧,我们一起联系多了,其实掌握就觉得很轻松了!继续努力!:
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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