简介
本文适用于需要进行以下操作的 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 Project 和 Rights 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 V