本文转自:http://www.uml.org.cn/gcgj/gcgj17.htm
原文如下:
前言
如今随着软件项目规模的日益增大以及项目复杂性的不断加剧,软件配置管理(SCM)的重要性已越来越受到大家的认可。许多优秀的软件配置管理工具也应运而生,使得我们能够轻松有效地管理我们的软件项目,作为这其中的一员,Microsoft Visual SourceSafe具有简单易用、方便高效、与Windows操作系统及微软开发工具高度集成等优点。今天,我们就来讲讲VSS中的权限管理。
首先我将讲解VSS中权限机制实现的原理,这里面设计到VSS的默认安全访问机制、项目安全等内容,接着我将告诉实现权限机制的具体方法,最后我将结合一个软件移交项目的具体情况来谈谈权限管理如何应用到实际的项目过程中。
一、VSS默认的安全访问控制
每次你安装VSS以后,系统自动激活默认的安全访问控制机制。这套机制非常简单,它包括两个等级的权限:
1) 只读权限:用户可以查看VSS数据库中的所有对象,但是不能够修改
2) 读写权限:用户可以查看和修改VSS数据库中的任何对象
每次你增加新用户的时候,你可以决定该用户的权限等级。在“Add User”对话框中包含一个“Read Only”复选框,你可以通过它来确定用户具有的权限。
我们前面说过这只是个极其简单、粗线条的解决方案,但同时也是最简单的。在实际过程中,你可能需要更细化的权限分配,甚至希望每个文件针对不同的用户都能设置不同的权限。那我们就得亲自动手设置我们项目的安全机制。
注意:SourceSafe中的所有安全设置都是在Visual SourceSafe Administrator中进行的,所以在深入以下细节之前,你必须确认一件事情:你的Admin密码足够安全,除你之外没有任何人可以随心所欲地进入Visual SourceSafe Administrator。否则,一切安全考虑都是徒劳。
二、项目安全与用户访问权限
在讲解项目安全之前我们先来回顾一下VSS的基本组成框架,VSS包含多个数据库(database),每个数据库又包含许多的项目,而且可能项目里嵌套着不同的子项目,最后才是你的源文件。你可以把这个类比成操作系统中的磁盘分区,目录,子目录,文件,每台机器包含许多的磁盘分区,每个分区中包含无数个目录、子目录,在子目录下才是你的文件。VSS中的用户是基于VSS数据库的,也就是说每个数据库都包含有自己的用户清单。用户访问权限意思是用户可以访问(包括查看、修改和执行命令等)数据库中的哪些项目,对项目来说就是它只能被那些已经授权的用户访问,也就是所谓的项目安全。
很遗憾VSS只提供了到项目(对应于目录)的用户权限控制,并不能针对每个文件来设置不同的用户访问权限(比如Rational ClearCase等就提供此功能)。虽然你可以用某种变通的方法来做到这一点,比如增加子项目,不过那样就破坏了整个项目结构的规范性、可读性和合理性,甚至产生些无任何意义的子项目。
VSS定义了四级用户访问权限,级别由低到高,后者包括所有前者的权限,比如说拥有Check Out权限就自动拥有了读的权限。
1) 只读(R):允许查看文件,对应于View、Get等命令
2) Check Out(C):可以使用Check Out,Check In,Undo Check Out等命令修改文件内容
3) 文件增删(A):可以在项目中增加、删除、重命名文件或者给文件加标签,对应的命令有Add,Delete,Label,Rename等
4) 破坏(D):这级权限对应于那些具有巨大破坏性的操作(就是那些一不小心就可能被炒鱿鱼的操作),请牢记它们的名字:Destroy,Purge,Rollback。所以亦有人戏称之为自杀权限。
其实你可以发现默认安全机制中的两级权限是和这四者对应起来的,只不过后者把前者的读写权限细分为三个不同的级别。好啦,了解每级权限各自的含义之后我们就可以开始设置不同用户的权限啦。
设置用户权限之前,你必须激活项目安全机制。打开VSS Administrator的Tools菜单,点击Options得到SourceSafe Options对话框,选取Project Security并且勾上Enable project security复选框。(如下图所示)
图一 激活项目安全机制
VSS中有三种方法可以设置用户的项目访问权限:针对项目设置每个用户的权限,针对用户设置访问每个项目的权限,拷贝用户权限,它们分别对应于Tools菜单下的Assign Rights by Project,Rights Assignments for User,Copy User Rights。我们以方法一为例做一简单说明。如下图所示,在左边框中选定项目,在右上框中选定用户,右下脚的User rights中就显示该用户现具有的权限,选中不同的复选框来设置你自己的权限。注意:对每个项目的用户权限设置自动反映到该项目的所有子项目中。
图二 用户授权
三、权限管理在实际项目中的应用
在本小节中,我主要结合在实际项目过程中作为配置管理员的经验来谈谈权限管理的实际应用,以及在应用过程中需要考虑的因素。
我们要接触的这个项目为一软件移交的项目,这个项目团队的成员组成和职责分配如下:
项目经理:1人,负责协调整个项目
业务分析师,1人,负责整个系统业务的掌握
系统架构师:1人,负责整个系统的系统架构
Package Owner:3人,分别负责系统前端、中间层及后台数据库三个部分
模块负责人:3-5人,分别负责各个模块
数据库管理员(DBA):1人,负责系统数据库
Test/QA:1人,负责整个软件的测试和质量保证
Technical Writer:1人,负责相关技术文档的写作
变更控制委员会(CCB):3人,负责项目需求的变更审核及执行,包括软件配置管理员,外方项目经理
实际过程中大多会发生人员交叉现象,比如我们项目的实际人数就只有9人,项目经理又同时是CCB中的一员,Package Owner同时兼任模块负责人。根据我们项目的实际组成情况,我在VSS中给出了如下所示的项目结构:
图三 VSS项目结构
图示说明:
1、exec项目中主要存放项目可执行文件或者软件安装文件,由于该项目比较复杂,建立过程耗时长且比较复杂,所以直接在VSS中存放可执行文件。一般的项目不推荐这样使用。
2、图中只是显示整个项目结构的主要部分,省略了细节部分,比如client项目中包含有许多的小项目。
接下来,就需要为每个项目、子项目设置不同的用户访问权限。由于所有的软件重大变更都需要交由CCB审核签字后方可执行,所以我们把整个项目的D(6)级权限赋给CCB成员。而项目经理主要负责项目的整体进度的把握以及与外方项目组、其他部门的协调工作,所以拥有整个项目的R权限并且拥有development document的A权限。配置管理员的权限有两者可能,一种就是拥有整个项目的A权限,另外一种可能就是只拥有部分项目的A权限,这主要取决于赋予给配置管理员的实际权限有多大。以此类推,各个模块负责人拥有各自模块的A权限。此外由于移交项目的特殊性,一般在项目开始过程中主要以培训为主,很少涉及到软件的修改,所以建议在项目开始阶段不赋予开发工程师用户C权限以免引起不必要的错误和争论。
总结
本文通过讨论VSS中权限管理实现的具体机制,并且结合例子讲解了在实际过程中的应用。虽然移交项目有着它本身的特殊性,但我相信对于任何项目来说其安全管理的基本思路是相通的,希望此文能够给大家以一定的启示和借鉴。
参考
1) 本文中会大量涉及到“项目”一词,有的时候它是指实际的软件项目,有时它又是指VSS数据库中的项目、子项目,请注意区分。
2) 有关软件配置管理的更详细信息,可以参考本网站相关内容。软件配置管理主要包括版本管理、变更管理、权限管理等方面,本文主要涉及权限管理。
3) 软件版本采用Microsoft Visual SourceSafe 6.0英文版,其他的版本请进行相应的对照。
4) 所有这些命令的详细信息可以参考VSS帮助。
5) 项目背景大致介绍:所移交的软件为一国外公司的软件,是基于Microsoft的DNA架构的三层应用,代码量为150万行左右。移交的目标:掌握现有系统,充分了解相关的商业逻辑,为以后开发出自己的符合中国国情的软件做好充分的准备。这其中可能涉及到需求的再分析、系统的重新架构以及向Java平台的迁移。
6) 我们分别用R、C、A、D来表示VSS中的四级权限Read,Check Out,Add,Destroy。
分享到:
相关推荐
Microsoft vss SourceSafe中的权限管理
Visual SourceSafe 提供了版本历史记录、代码冲突解决机制以及项目备份等功能,对于项目管理中的文档管理具有显著优势。 **中文语言包** 的引入是为了满足中文用户的需求,使得用户界面和帮助文档等全部转化为简体...
总之,《图解Visual SourceSafe 2005与项目管理》不仅是一篇操作指南,更是一份实践手册,它通过详尽的步骤解析和图示,帮助读者深入理解Visual SourceSafe 2005在项目管理中的应用,是软件开发者和项目管理人员不可...
Sourcesafe是微软开发的一款版本控制软件,主要用于管理软件项目中的文件版本控制。它可以帮助开发者跟踪文件的变化历史,支持文件签入签出等功能,确保团队成员之间的协作更加高效有序。 #### 二、配置Sourcesafe...
在SourceSafe中,所有操作都需遵循权限设定,用户和密码由管理员(Admin)设定,包括对文件的各种操作权限。 ### **SourceSafe操作** 1. **建立工程与文件添加** - 工程创建:可以通过菜单栏操作,也可以直接从...
5. 基于权限的访问控制:管理员可以为每个用户分配不同的权限,确保数据安全。 6. 检出与签入:用户在编辑文件前需要先检出,编辑完成后签入,这个过程会自动记录下更改,更新版本库。 7. 备份与恢复:VSS6.0内置...
1. **创建专门的用户组**:用于管理所有需要访问SourceSafe的用户。 2. **配置共享文件夹的访问权限**:确保只有特定用户组可以访问这些文件夹。 3. **调整安全策略**:精确控制哪些用户可以在文件夹中执行删除操作...
Visual SourceSafe 6.0(简称VSS)是由Microsoft开发的一款源代码版本控制系统,它主要用于软件开发团队在项目开发过程中进行版本管理和协同工作。这款工具提供了版本历史追踪、代码冲突解决、用户权限管理等功能,...
Visual SourceSafe 2005是一款ource控制系统,旨在帮助开发团队管理代码、追踪修改记录、协作开发等。正确安装和设置Visual SourceSafe 2005是确保项目顺利进行的关键步骤。下面将详细介绍Visual SourceSafe 2005的...
- **VSS管理任务**:包括安装配置、用户管理、数据库管理、权限设置等,是确保VSS系统稳定运行的关键。 - **安装**:详细的安装步骤和注意事项,确保VSS能够在目标系统上正确安装。 - **维护用户列表**:管理员需要...
管理员需要合理设置用户的访问权限,确保只有授权的用户才能访问敏感数据。 ##### 4.8 管理员命令 管理员命令是一系列用于管理 VSS 的命令行工具,包括创建项目、用户管理、数据库管理等功能。 ##### 4.9 管理员...
Visual SourceSafe 2005 是微软发布的一款版本控制系统,主要面向软件开发团队,用于管理代码和其他项目资源的变更。这款工具提供了版本控制、协同工作、备份与恢复等多种功能,帮助开发者追踪代码历史,合并不同...
7. 安装与配置:VSS6.0d的安装过程相对简单,但配置需要考虑服务器和客户端的设置,以及网络访问权限等,以确保所有团队成员都能正常访问和使用。 8. 集成开发环境:VSS与Visual Studio等IDE有良好的集成,可以直接...
尽管Visual SourceSafe在早期的软件开发环境中发挥了重要作用,但随着技术的发展,它逐渐被更现代的版本控制系统如Git所取代,因为Git提供了分布式版本控制、更快的性能以及更强大的分支管理功能。然而,对于一些...
它提供了权限管理功能,可以根据团队成员的角色分配不同的访问权限,保护代码资源不被未经授权的访问或修改。此外,VSS还支持数据备份和恢复策略,以防数据丢失。 总的来说,Visual SourceSafe 6.0作为一款强大的源...
在《Visual SourceSafe 使用说明.pdf》这份文档中,你将找到关于如何安装和配置VSS,如何创建和管理项目,如何进行基本的版本控制操作,以及如何解决可能出现的问题等全面的指导。通过阅读和实践,你将能够熟练掌握...
2. 访问控制:通过权限设置,管理者可以控制每个团队成员对项目的访问和修改权限,保证项目管理的规范性。 3. 整合性:VSS与Visual Studio无缝集成,开发人员在IDE内即可完成版本控制操作,提高了工作效率。 4. ...
《Visual SourceSafe 使用手册》是针对项目组和项目管理部成员设计的一份详细指南,旨在帮助用户理解和掌握软件配置管理工具Visual SourceSafe(VSS)的使用方法。VSS是一款由Microsoft开发的版本控制系统,它提供了...