51Testing软件测试网;g}io$e3jSOJ6s1d前言51Testing软件测试网%SgHQ#S#h
51Testing软件测试网V9?(g2|0f9W
3MFQ7@5Y0 如今随着软件项目规模的日益增大以及项目复杂性的不断加剧,软件配置管理(SCM)的重要性已越来越受到大家的认可。许多优秀的软件配置管理工具也应运而生,使得我们能够轻松有效地管理我们的软件项目,作为这其中的一员,Microsoft Visual SourceSafe具有简单易用、方便高效、与Windows操作系统及微软开发工具高度集成等优点。今天,我们就来讲讲VSS中的权限管理。51Testing软件测试网 Q?0P%yp GG(Z$W
-{l:[:s\N?_0 51Testing软件测试网%f!G{6J,k'w"M@J 首先我将讲解VSS中权限机制实现的原理,这里面设计到VSS的默认安全访问机制、项目安全等内容,接着我将告诉实现权限机制的具体方法,最后我将结合一个软件移交项目的具体情况来谈谈权限管理如何应用到实际的项目过程中。51Testing软件测试网m0s9i+WPi+d$r
F;uX4|lFY0一、VSS默认的安全访问控制
?5@B\+I8C5p"DP |Q0
lc)Rrf0 51Testing软件测试网jx$M0W2K,r*C[ 每次你安装VSS以后,系统自动激活默认的安全访问控制机制。这套机制非常简单,它包括两个等级的权限:51Testing软件测试网Y2F7WJG1v
51Testing软件测试网| GX7m)n2B{?:|
`J]W]0 1) 只读权限:用户可以查看VSS数据库中的所有对象,但是不能够修改
2K+eT#uI-C1d1]0
@ S8QRu8S2A0 51Testing软件测试网B{xG(wB 2) 读写权限:用户可以查看和修改VSS数据库中的任何对象
l/X3E/C#]0
i"`/i2U6d%}%x&_L5T0 51Testing软件测试网*M.H)gB_8Dr-Q 每次你增加新用户的时候,你可以决定该用户的权限等级。在“Add User”对话框中包含一个“Read Only”复选框,你可以通过它来确定用户具有的权限。51Testing软件测试网j
W3R
H[(~z
I
51Testing软件测试网H{U(WyA4c.o
JK3O#mpO1g5A-_z0 我们前面说过这只是个极其简单、粗线条的解决方案,但同时也是最简单的。在实际过程中,你可能需要更细化的权限分配,甚至希望每个文件针对不同的用户都能设置不同的权限。那我们就得亲自动手设置我们项目的安全机制。 51Testing软件测试网J,M[h e6g
51Testing软件测试网|:i Ywn
C D$EtTN:s0 注意:SourceSafe中的所有安全设置都是在Visual SourceSafe Administrator中进行的,所以在深入以下细节之前,你必须确认一件事情:你的Admin密码足够安全,除你之外没有任何人可以随心所欲地进入Visual SourceSafe Administrator。否则,一切安全考虑都是徒劳。
p Bu9vW.n3E
I T0 7M+Z G1E$BVq0二、项目安全与用户访问权限
K'o6w
I+v(v051Testing软件测试网@~mBl+QdJB~
L
51Testing软件测试网9f7M8I^'E$tc 在讲解项目安全之前我们先来回顾一下VSS的基本组成框架,VSS包含多个数据库(database),每个数据库又包含许多的项目,而且可能项目里嵌套着不同的子项目,最后才是你的源文件。你可以把这个类比成操作系统中的磁盘分区,目录,子目录,文件,每台机器包含许多的磁盘分区,每个分区中包含无数个目录、子目录,在子目录下才是你的文件。VSS中的用户是基于VSS数据库的,也就是说每个数据库都包含有自己的用户清单。用户访问权限意思是用户可以访问(包括查看、修改和执行命令等)数据库中的哪些项目,对项目来说就是它只能被那些已经授权的用户访问,也就是所谓的项目安全。
7n
lQh;\*?"f m0
q7m1W6\:F4Fh$j"i0 a;FK2c,\]%q(I0 很遗憾VSS只提供了到项目(对应于目录)的用户权限控制,并不能针对每个文件来设置不同的用户访问权限(比如Rational ClearCase等就提供此功能)。虽然你可以用某种变通的方法来做到这一点,比如增加子项目,不过那样就破坏了整个项目结构的规范性、可读性和合理性,甚至产生些无任何意义的子项目。51Testing软件测试网JAH Sxw5f|
51Testing软件测试网"}'m
lE/e3NLc#n
51Testing软件测试网]7p%M8sg4p VSS定义了四级用户访问权限,级别由低到高,后者包括所有前者的权限,比如说拥有Check Out权限就自动拥有了读的权限。51Testing软件测试网{`5Z'p5bB
,EqunJX
?q
d0 51Testing软件测试网fkd9A+`
J-V:@Q6} 1) 只读(R):允许查看文件,对应于View、Get等命令51Testing软件测试网i1hT3i^uEz@
b
51Testing软件测试网 DZlV!c1y s
51Testing软件测试网3J|O9H~.q/?UP#n 2) Check Out(C):可以使用Check Out,Check In,Undo Check Out等命令修改文件内容
&DD,uZ,EbM6lQ0
Y$q U%ejX8LHa0 M].D w!~S.vK,@K3[$P(X0 3) 文件增删(A):可以在项目中增加、删除、重命名文件或者给文件加标签,对应的命令有Add,Delete,Label,Rename等
a5x;otnSJ o051Testing软件测试网\"f.{ z6{
"v!r"I^,W!cy0 4) 破坏(D):这级权限对应于那些具有巨大破坏性的操作(就是那些一不小心就可能被炒鱿鱼的操作),请牢记它们的名字:Destroy,Purge,Rollback。所以亦有人戏称之为自杀权限。
ruWe&cu051Testing软件测试网 ?%RO a2T/~G
`%gyV^au7`b0 其实你可以发现默认安全机制中的两级权限是和这四者对应起来的,只不过后者把前者的读写权限细分为三个不同的级别。好啦,了解每级权限各自的含义之后我们就可以开始设置不同用户的权限啦。51Testing软件测试网i/ff
O n
51Testing软件测试网? rt
@a2zq5LA'h
&x
y#P
V1G}9A+[C0 设置用户权限之前,你必须激活项目安全机制。打开VSS Administrator的Tools菜单,点击Options得到SourceSafe Options对话框,选取Project Security并且勾上Enable project security复选框。(如下图所示)51Testing软件测试网{?&b8]J
,kf,r)pv4qaWu3D0
R3il'hQ5m!d]U;N0 图一 激活项目安全机制
B(p3`,]D;W~0 51Testing软件测试网)F
smFg'E9f^B9F/u VSS中有三种方法可以设置用户的项目访问权限:针对项目设置每个用户的权限,针对用户设置访问每个项目的权限,拷贝用户权限,它们分别对应于Tools菜单下的Assign Rights by Project,Rights Assignments for User,Copy User Rights。我们以方法一为例做一简单说明。如下图所示,在左边框中选定项目,在右上框中选定用户,右下脚的User rights中就显示该用户现具有的权限,选中不同的复选框来设置你自己的权限。注意:对每个项目的用户权限设置自动反映到该项目的所有子项目中。
#pUS)e;E7p0h0
0o6e$E`$S*{0 51Testing软件测试网7[+nKs
K
图二 用户授权51Testing软件测试网(s2N:_,f1Ur A
51Testing软件测试网H-m{JLlB51Testing软件测试网:h5^Q,Ia
zHlI
三、权限管理在实际项目中的应用51Testing软件测试网Mv/t
X__R
51Testing软件测试网\ B8Z%smC+me0K
D4V d}mk%Z/Su#u7E0 在本小节中,我主要结合在实际项目过程中作为配置管理员的经验来谈谈权限管理的实际应用,以及在应用过程中需要考虑的因素。