Visual SourceSafe 数据库安全性简介

本文介绍如何使用Windows安全性来保护VisualSourceSafe (VSS) 数据库,并讲解了VSS用户权限、任务分配和数据库保护的原则。文章还提供了一些最佳实践,如限制共享权限、隐藏VSS数据共享等。
目录

简介

本文适用于需要进行以下操作的 Visual SourceSafe (VSS) 用户:创建 VSS 数据库、授予其他用户访问包含数据库的文件共享的权限,或者在 VSS Administrator 程序中管理用户权限和进行任务分配。

术语

“安全”是基于 Windows 用户凭据和权限对资源的访问进行控制的过程。

“权限”是与本地资源或网络上的共享资源(例如文件、目录或打印机)相关联的一些规则,可以授予给组和全局组,甚至可以授予给单个 Windows 用户。授予 Windows 权限时,即指定了组或用户的访问级别。

“操作系统或文件系统安全性”在每次 Windows 用户与共享资源交互时检查权限,以确认该用户具有所需的权限。例如,如果用户尝试在某个文件夹中保存文件,则必须具有该文件夹的写入权限。

“共享”使其他用户可以访问 Windows 资源(例如文件夹和打印机)。共享资源权限使得只有某些 Windows 用户可以通过网络访问共享资源。共享文件夹的管理员授予 Windows 用户相应的权限,使其具有对文件夹及其子文件夹的远程访问权限。共享 Windows 资源与共享 VSS 中的文件和项目不同。

VSS 中的“权限”指定哪些 VSS 用户具有访问特定 VSS 项目的权限。VSS 中包括四种级别的用户访问权限:读取、签出/签入、添加/重命名/删除和破坏。可以为数据库的新用户指定默认级别。

VSS 中的“任务分配”指定哪些 VSS 项目可以被指定的 VSS 用户访问。

“VSS 数据库文件夹”是 Windows 文件夹,它包含数据库的 Srcsafe.ini 文件和其他 VSS 文件夹(例如 Data 和 Users)。

保护数据库和管理用户

通过指定 VSS 数据库中各个用户或各个项目的访问权限,VSS Administrator 程序提供了管理 VSS 用户的工具。但是,要真正保护数据库,必须使用 Windows 集成的安全性来限制对 VSS 文件夹的访问,方法是设置文件夹的共享和安全权限。如下图所示,共享的 VSS 数据库的安全性仅与其所在共享网络文件夹相同。创建数据库或添加/删除 VSS 用户时,可以设置或更改数据库文件夹的共享权限,从而按照数据库锁定步骤来加强 Windows 安全性。否则,网络上不怀好意的用户可以轻易绕过 VSS 用户权限和任务分配透明墙。请勿依赖于 VSS 来保护数据:即使是只读 VSS 用户也可以从他们能访问到的共享网络文件夹中删除 VSS 数据库。

Visual SourceSafe 安全体系结构

在 VSS Administrator 程序中设置的 VSS 用户权限和任务分配,独立于 VSS 数据库文件夹的 Windows 共享权限。VSS 使用 VSS 用户名与密码来管理用户以及控制对 VSS 的访问。在 VSS Administrator 程序中,VSS 用户名用于管理用户权限和任务分配,并且可用于识别处于登录状态、历史信息状态和文件报告状态的用户。用户可以使用其用户名和密码登录到 VSS。VSS 为每个用户创建并跟踪初始化文件 Ss.ini,其中包含自定义对应用户 VSS 环境的设置。要保护该初始化文件,请参阅如何锁定 Visual SourceSafe 数据库中的说明。

有关 Windows 安全性、访问控制和权限的详细信息,请参阅 Windows 帮助。

数据库保护原则

要保护数据库,必须使用 Windows 集成的安全性来限制对 VSS 文件夹的访问,以便只有获得授权的 Windows 用户才能访问数据库或运行 VSS Administrator 程序。VSS 数据库的安全性取决于它所在文件夹的安全性。要实现本文所述的 VSS 数据库的安全性,该数据库必须安装在 NT 文件系统 (NTFS) 上。Windows NT 4.0、Windows 2000、Windows XP 及更高版本中都提供了这个文件系统。当 VSS 数据库安装在 NTFS 卷上时,可以为各个文件和文件夹分别授予权限,而文件分配表 (FAT) 文件系统则对整个共享应用相同的权限。

限制共享权限

创建共享数据库时,强烈建议您使用 Windows 资源管理器限制 VSS 文件夹的共享权限。在共享 VSS 数据库文件夹时,必须删除自动添加的 Everyone 组。可以创建两个 Windows 用户组(VSS 管理员和 VSS 用户),并为每个组授予相应的权限,供他们访问该 VSS 数据库文件夹和其他 VSS 文件夹。同时必须授予每个 VSS 用户对 Users/username 文件夹(此文件与该用户的 VSS 用户名相对应)的读取和写入权限。有关说明,请参阅如何锁定 Visual SourceSafe 数据库

管理用户

在添加或删除 VSS 用户时,不仅需要使用 VSS Administrator 程序的用户列表来管理相应的用户,还必须添加或删除其 Windows 共享权限。有关说明,请参阅如何锁定 Visual SourceSafe 数据库

其他注意事项

在安全位置安装数据库

在 VSS 的安装过程中,默认情况下会在 Program Files 文件夹下的 VSS Data 文件夹中创建一个数据库。此数据库仅由个人使用,不应共享。只有在其他程序要求时才使用默认位置处的该数据库。

具有 VSS 文件夹的“完全控制”权限的任何 Windows 用户都可以替换 Win32 文件夹中的可执行文件:请按照如何锁定 Visual SourceSafe 数据库中的说明将“完全控制”权限仅授予 VSS 管理员组中的用户。此外,所有 VSS 数据库用户都需要有访问 VSS 数据库文件夹的相应权限,如果该文件夹位于 Program Files 文件夹下,则它包含可执行文件和相关资源。

请勿在系统文件夹或者 Documents and Settings 文件夹下创建共享数据库。

隐藏 VSS 数据共享

可以隐藏网络共享,这样就使远程 Windows 用户很难确认服务器是否具有共享、是否安装了 VSS。在这种情况下,当 Windows 用户浏览服务器时,网络共享不会显示。要隐藏网络共享,请在该文件夹名称的末尾添加 $ 符号,例如,使用 //server/vssdb1$ 来替代 //server/vssdb1。必须将数据库的确切位置告诉 VSS 用户,他们才能将该数据库添加到 Open SourceSafe Database 对话框的 Available databases 列表中。

影子文件夹

如果为 VSS 项目创建影子文件夹,则该文件夹将不会继承 VSS 文件夹的 Windows 用户权限。向所有 VSS 用户授予对影子文件夹的读取和写入权限,而对需要只读访问此影子文件夹的任何 Windows 用户只授予读取权限。有关详细信息,请参阅 Create Shadow Folders(英文)。

建议在与 VSS 数据库不同的共享下创建影子文件夹,这样对该影子文件夹具有只读访问权限的 Windows 用户就无法获得包含此数据库的共享的任何访问权限。另外,建议为特定的 VSS 项目而不是根项目 $ 创建影子文件夹,这样,对该影子文件夹具有访问权限的 Windows 用户就只能访问此 VSS 项目而不是整个数据库。

注意:从 VSS 项目中删除文件或项目时,该文件或项目不会从影子文件夹中删除。
日志文件

如果创建日志文件,建议您保护该文件,方法是将其置于 Srcsafe.ini 文件所在的文件夹中,并将该日志文件的 Windows 读取和写入权限授予 VSS 用户。

安装和运行 VSS 所需的权限

要安装 VSS,您必须是进行安装的计算机的 Windows 管理员,但是运行 VSS Administrator 程序或 VSS Explorer 和命令行并不需要 Windows 管理员权限。

Admin 和 Guest 用户名

创建 VSS 数据库时,默认情况下会创建两个用户名:Admin 和 Guest。Admin 用户和 Guest 用户的密码为空。建议在 VSS Administrator 程序中使用 Change Password 命令来设置 Admin 用户的密码。可以删除 Guest 用户,也可以通过使用 VSS Administrator 程序中的 Change Password 命令为该用户设置密码。有关详细信息,请参阅 Change a User Password(英文)。

密码

如果 VSS 用户必须键入用户名和密码才能登录到 VSS,则需要告诉他们不要为操作系统和 VSS 设置相同的密码。如果两者密码相同,而黑客又破解了 VSS 密码,那黑客就可以使用此用户的身份来访问操作系统及所有程序。

SSUSER 和 SSPWD 环境变量

可以在计算机上为 VSS 用户名和密码设置 SSUSER 和 SSPWD 环境变量,这样可以避免每次在命令行中输入 VSS 命令或启动 VSS 资源管理器时都出现登录提示。

如果设置了这些环境变量,则该计算机上的任何用户都可以读取这些变量,并使用您的用户名和密码运行 VSS。

使用网络名实现自动用户登录

Visual SourceSafe 提供了 Use network name for automatic user log in 选项,可用于允许 Visual SourceSafe 与 Microsoft Visual InterDev、Visual Studio .Net 及 FrontPage 进行集成。有关使用此选项时需要注意的安全事项的详细信息,请参阅 Microsoft Knowledge Base(英文)文章 Q283618。

VSS 项目权限的使用

如果要为单独的 VSS 用户和单独的 VSS 项目指定访问权限,请使用 VSS Administrator 程序中 Tools 菜单下的 Rights by ProjectRights Assignments for Users 命令。在 Visual SourceSafe 6.0c 和早期版本中,可以通过选择 SourceSafe Options 对话框中 Project Security 选项卡上的 Enable Project Security 来激活菜单命令。在高版本的 Visual SourceSafe 中,可以通过选择 SourceSafe Options 对话框中 Project Rights 选项卡上的 Enable Rights and Assignments commands 来激活菜单命令。

审核用户活动

使用 VSS Administrator 程序可以创建日志文件(一个文本文件),用于记录 VSS 用户在 VSS 数据库中进行的、会为文件或项目生成历史项的任何操作。有关详细信息,请参阅 General Options Tab (Tools Menu)(英文)或 Journal_File Initialization Variable(英文)。 Windows 管理员可以审核很多与安全相关的事件,例如对特定文件或文件夹的访问。监视与安全相关的事件可以帮助 VSS 管理员检测到试图破坏 VSS 数据库中数据的活动。有关审核安全性事件和审核对对象(例如文件和文件夹)的访问的详细信息,请参阅 Windows 帮助。

请参阅

如何锁定 Visual SourceSafe 数据库

一、 开发前的准备1、 在装有Windows 2000或者Windows XP Professional的机器上安装.Net Framework SDK、Visual Studio.Net、Visual Source Safe 6C。(如果用户操作系统是Windows .Net Server,则无须安装.Net Framework SDK,.Net Server自带的IIS 6已经完全包含了对.Net的支持)这些工具在Visual Studio.Net的安装盘上都可以找到。2、 一台专门用于存放版本控制中心数据库的服务器。该服务器不需要安装.NET Framework SDK和VS.Net,但是必须安装VSS 6C。我们称这台服务器为开发服务器DataCenter。3、 一个主域控制器,将DataCenter服务器加入这个域,为每一个开发用户分配域帐号。这样所有小组成员可以通过登录到Window NT域来访问版本控制信息。注意:Visual Studio 6所带的Visual Source Safe 6不支持.Net的一些文件格式。如果你安装了VSS 6,也需要再安装一次VSS 6C,否则在VS.Net环境中将源代码加入到VSS数据库中将会出现错误。 二、 创建空的SourceSafe数据库在开始工作之前,需要建立一个空的SourceSafe数据库,来存放源代码控制数据,并为小组开发人员分配访问帐号。在DataCenter服务器上新建Source Safe数据库。步骤如下:1、 启动"开始"——"程序"——"Microsoft Visual SourceSafe"菜单下的SourceSafe 6.0 Admin。如果你是第一次安装VSS 6C,Common数据库的Admin帐号为空。如图一所示: 2、 在Visual SourceSafe Administrator窗口中,你可以看到Source Safe默认的两个用户Admin和Guest。如果你不打算使用默认的Common数据库,而要建立一个属于自己的项目数据库。选择菜单"Tools"——"Create Database",如图二所示: 3、 在弹出的对话框中选择新数据库存放的位置。这里我们选择:C:\SourceManager\。点击OK后,提示你已经创建了数据库。4、 选择"Users"——"Open SourceSafe Database…",使用Browser按钮,选择刚才所创建的SourceManager数据库C:\SourceManager\srcsafe.ini。5、 使用"Users"——"Change Password"命令更改Admin帐号的密码。使用"Users"——"Add User"命令为项目小组成员创建SourceSafe帐号。6、 将C:\SourceManager目录设置为共享。共享权限默认是Everyone完全控制。如果希望只对项目小组成员开放,不希望其他人操作数据库文件(注意:没有SourceManager帐号的人不能访问SourceSafe中的内容,但如果他有权限的话,可以删除或修改数据库中的数据),请将Everyone组从权限组中删除,并从域目录中选择可以访问该目录的域帐号或计算机。7、 到此,一个空的项目数据库建立完毕。 三、 新建项目并加入版本控制下面将演示在一个装有VS.Net的计算机上创建一个Windows应用程序和一个Web项目,并把它加入到上面所建的SouceManager数据库中。1、 启动VS.NET。2、 使用"文件"——"新建"——"空白解决方案"命令,在D:\下新建解决方案SourceManager。VS.Net会在D:\下自动创建一个SourceManager目录,该目录中有一个解决方案文件SourceManager.sln文件。3、 使用"文件"——"新建"——"项目"命令,在项目类型中选择"Visual C#项目",在"模板"中选择"Window应用程序"。项目名称MyWindowApp。并选择"添入解决方案"选项。确定。 4、 使用"文件"——"新建"——"项目"命令,在项目类型中选择"Visual C#项目",在"模板"中选择"ASP.NET Web应用程序"。在"位置"栏中填写http://localhost/MyWebApp。并选择"添入解决方案"选项。确定。 这样就在解决方案中建立了一个Window应用程序和一个Web应用程序。下面讲述如何将整个解决方案加入到源代码版本控制。5、 在WebFrom1和Form1的设计器中各自加入一个Label控件,保持它的属性不变。我们将看到从另一个主机上获取的程序用户界面中也会有这一个控件。6、 使用"文件"——"源代码管理"——"将解决方案加到源代码管理"命令。 7、 在弹出的Visual SourceSafe Login登录窗口点击"Browser"按钮,弹出打开数据库对话框,点击该对话框的"Browser"按钮,弹出如下对话框,在"文件名"中输入\\DataCenter\SourceManager\srcsafe.ini。确定后输入上面所分配的SourceSafe帐号和密码。 8、 首先会弹出一个保存解决方案的提示窗口,让你选择将要保存到SourceSafe中的项目名称,默认与解决方案的名称相同。点击OK,会得到项目在数据库中不存在的提示,点击"Yes"创建该项目。 9、 接下来会让你选择Web应用程序的保存位置。如下图所示。由于Web应用程序通常保存在本地的IIS根目录下。与解决方案中的其它项目不在同一个目录中,所以需要为Web应用程序在SourceSafe中单独建立一个项目。在该窗口点击"OK"按钮接受SourceSafe的默认项目名称MyWebApp。 10、 到此,我们已经在SourceSafe中添加了整个解决方案,包括一个Windows应用程序和一个Web应用程序。在"解决方案资源管理器"视图中,加入源代码控制的程序旁边有一把锁(如图九所示),表示文档已签入,不可编辑。 11、 通过菜单"文件"——"源代码管理"——"Microsoft Visual SourceSafe",打开SourceSafe,可以看到,在SourceSafe中已经加入了两个项目。如图十所示: 四、 获取SourceSafe中的项目下面的步骤中将讲述如何在另一台主机上从SourceSafe获取源代码。1、 在另一台主机上打开Visual Studio.Net开发环境。使用菜单命令"文件"——"源代码管理"——"从源代码管理打开"。重复第三步中的第7个操作,选择SourceSafe数据库的位置。2、 弹出"Create local poject from SourceSafe"窗口,在"Create a new project in the"输入框中填写你要保存项目的本地路径,这里我们选择"C:\MyProject"。在"SourceSafe project to"中选择SourceManager项目,单击OK按钮。如果目录C:\MyProject不存在,会询问是否创建,选择"Yes All"。 3、 接下来会弹出保存Web应用程序工作副本的对话框,在工作副本位置输入框中输入你想要保存Web应用的Web文件夹,也可以接受默认设置。点击"确定"按钮接受默认设置。 4、 通过上述步骤,我们已经成功地在另一个开发主机上获得保存在SourceSafe的工程。将来如果有新的开发人员加入,只需重复这四个步骤即可。 五、 版本控制的几个概念在Visual Studio.Net开发环境"解决方案资源管理器"的上下文菜单或者"文件"——中有如下与文件操作有关的命令,如图十三所示: 1、 文件的"签出"(Check Out):当需要编辑一个文件时,必须将该文件"签出",SourceSafe会标志该文件已经被某个用户迁出,并确保其他用户不可编辑同一个文件。对于文件,仅当文件被签入后才有这个选项。2、 文件的"签入"(Check In):当完成文件的编辑后,最好将文件"签入",以让其他用户可以签出或者获取最新版本。对于文件,仅当文件被签出后才有这个选项。3、 "获取最新版本":从SourceSafe数据库中获取指定文件或项目的最新版本,而又不必签出文件。4、 "取消签出":不在SourceSafe数据库中保存签出后所做的修改,使本地文件恢复到修改之前的状态,并且将文件签入。只有文件或项目中有文件被签出后才有这个选项。5、 "历史记录":查看文件修改的历史记录。SourceSafe数据库会自动保存每次"签入"前后的文件内容。如果需要查看历史记录。6、 "版本比较":可以比较当前版本与历史版本之间的差异,SourceSafe将以对照的形式将两个版本的不同之处显示出来。如图十四所示: 7、 "Roll Back":在历史版本显示对话框中有一个Roll Back命令,即将文件恢复到历史版本。当文件编辑错误时,想让文件回到历史的某个点时,使用该命令。历史版本显示对话框中还有其它命令,这里不一一详述,请读者慢慢研究。 8、 Visual Studio.Net中关于版本控制的选项:在"工具"——"选项"命令对话框中,选择左边的"源代码管理",显示如下对话框。读者可以根据项目的情况对SourceSafe选项进行设置。 9、 其它SourceSafe操作:读者可以从"文件"——"源代码管理"——"Microsoft Visual SourceSafe"菜单,进入"Visual SourceSafe Explorer",其中大多数主要命令基本与Visual Studio.Net相同,这里就不再累赘。 六、 版本控制项目的管理下面将讲述版本控制相关的一些权限管理和文件映射。首先在DataCenter服务器上打开"开始"——"程序"——"Microsoft Visual SourceSafe"——"Visual Source Safe 6.0 Admin"。选择SourceManager数据库,填入Admin账号的密码。进入"SourceSafe Administrator"窗口。它有如下几个菜单。 1、 Users菜单下是关于用户操作的命令,除上面我们所使用的添加用户"Add User"、修改密码"Change Password"外,还有删除用户"Delete User"、编辑用户"Edit User"命令。"Open SourceSafe Database"命令用于更改当前SourceSafe数据库。2、 Tools菜单下的Options对话框中包括了一些项目的设置。下面对主要的选项进行简单的说明:(1) General页中的Allow multiple checkouts,如果选择此项,则允许多个用户同时签出文件。默认是不允许。(2) Project Security页中的"Enable project security"复选框指明是否允许对项目使用安全性。该项默认为不允许。只有当选择了这个选项之后,Tools下的"Rights by Project"、"Right Assignments for User"和"Copy User Rights"才可用。这里我们将它选中。(3) Shadow Folders页用于设置项目在服务器上的映射。项目在SourceSafe中以二进制码形式将文件的所有版本信息保存在文件中。要在服务器上创建一个目录,将项目文件映射到这个目录中,使用该命令。在"Set shadow folder for project"中选择在SourceSafe中的SourceManager项目,在"Set shadow folder to"中选择项目要映射到的目录,如C:\SourceManager_Shadow。(4) Web Projects页用于设置Web项目在服务器上的映射。在This project represents a Web Site中选择SourceSafe中的MyWebApp项目,在URL中填入"http://localhost",即本地Web服务器(也可以填入其它服务器)。Virtual Tools中填入要映射的虚拟目录,在"Deployments path"填入部署目录,这个目录将成为IIS中指定虚拟目录的映射目录。3、 Tools菜单下的"Rights by Project"管理SourceSafe中项目的权限,如图所示。用户权限共有四种,在Rights中分别对应为:R(Read)、C(Check Out/Check In)、A(Add/Rename/Delete)、D(Destroy)。在左边的"Project"框中选择一个项目,并在右边选择相应的用户,使用下面的复选框,给用户分配相应的权限。Tools菜单下的"Rights Assignments for User"用于给选定用户分配权限,操作结果与上面的命令相同。 4、 Archive菜单下的"Archive Projects"用于将指定项目打包成*.ssa(SourceSafe Archive)文件,并迁移到其他主机上,使用Archive的"Restore Projects"命令,将该文件恢复到其他主机。这两个命令用于项目的迁移。 总结使用SourceSafe与VS.Net开发环境,可以为团队开发提供完整的源代码管理方案。通过源代码管理,可以记录项目开发的过程份。 http://www.biancheng168.com/Download/HTML/27.html
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值