摘要:本文通过一些操作步骤详细介绍了如何保护 Visual SourceSafe 数据库。
本文分为两部分。有关在创建和管理 Visual SourceSafe 6.0 及其早期版本的数据库时管理员需要解决的一些安全问题的详细信息,请参阅 Visual SourceSafe 数据库安全性简介。
如果您需要使用 Visual SourceSafe (VSS) 来创建数据库,授予其他用户访问文件共享和 VSS 数据库的权限,或者在 VSS Administrator 程序中管理权限,那么阅读本文就会对您有所帮助。
首先,请按照保护数据库中的步骤创建两个 VSS 用户组,并授予他们访问 VSS 数据库和程序文件夹的适当权限。然后,当有人加入或退出团队时,使用过程中的安全管理中的步骤来添加或删除单个 VSS 用户。不管您是首次安装 VSS 并创建数据库,还是已经安装有 VSS,都请按照本文中的说明并检查 VSS 数据库安全性简介中的其他注意事项,以保护 VSS 和您的数据库。在锁定数据库之后,如果要通知 VSS 用户使用 VSS,请先使用核对表来验证其安全性。
要保护 Visual SourceSafe (VSS) 数据库以及用于控制和管理 VSS 的文件,需要使用 Windows 的安全权限来限制访问。按照本文介绍的步骤,您可以锁定数据库,从而达到以下目的:
锁定数据库不能提供:
VSS Administrator 程序提供了用于管理 VSS 用户的工具,通过指定 VSS 数据库中的各个用户或各个项目的访问权限来实现管理功能。但是,要真正保证数据库的安全,您必须使用 Windows 集成的安全性限制对 VSS 文件夹的访问,即设置这些文件夹的共享和安全权限。
您可以在 Windows 中创建用户组,然后将 Windows 用户添加到组,从而使用户获得为该组指定的所有许可和用户权限。已联网的计算机的 Windows 用户可以访问该计算机上的程序和文件,也可以访问位于网络上的文件,这取决于网络管理员对帐户权限的限制。通过将 Windows 用户编组,管理员可以授予组中所有用户相同的权限,从而简化管理任务。有关哪些 Windows 用户或组有权访问或修改资源及文件的信息,包含在该资源或文件的访问控制列表 (ACL) 中。有关访问控制的详细信息,请参阅 Windows 帮助。
要锁定 VSS 数据库,需要创建两个 Windows 用户组:一个是 VSS 管理员组,另一个是 VSS 用户组。
如果要使用本文介绍的步骤来保护 VSS 数据库,您的数据库必须安装在 NT 文件系统 (NTFS) 上。Windows NT 4.0、Windows 2000、Windows XP 及更高版本中都提供了该文件系统。在 NTFS 文件系统上,可以为各个文件和文件夹分别授予权限,而文件分配表 (FAT) 文件系统则对整个共享应用相同的权限。要共享文件夹,您必须是该计算机的 Windows 管理员。
注意:如果移动数据库,Windows 权限不会跟着移动,您必须在新位置再次锁定数据库。
将用户编成 Windows 用户组可以简化您的管理任务并提高管理效率。您需要创建两个 Windows 用户组:一个是 VSS 管理员组,另一个是 VSS 用户组。例如,创建名为 VSS_DB1_Admin 和 VSS_DB1_User 的组。管理员可以使用 VSS Administrator 程序管理 VSS 用户,为所有 VSS 用户与项目设置项目选项,以及执行维护操作。VSS 用户可以通过 VSS Explorer 或命令行来使用 VSS,也可以通过使用 SourceSafe Options 对话框或通过编辑每个 Users/username 文件夹下的 Ss.ini 文件来自定义 VSS。
注意:VSS 用户名 Admin 是唯一可用于登录到 VSS Administrator 程序的 VSS 用户名。VSS_DB1_Admin 组中的所有成员都必须使用 VSS 用户名 Admin 及相应的密码进行登录。
所有 VSS 用户对 VSS 文件夹必须拥有相同的 Windows 权限,还要对相应的 Users/username 文件夹拥有其他各种权限。如果要限制某些 VSS 用户,使其只能读取 VSS 数据库中的文件,那么建议您不要将这些人员设为 VSS 用户或 VSS_DB1_Users 组中的成员,而应该创建一个影子文件夹,并授予这些人访问此文件夹的权限。有关影子文件夹的信息,请参阅 Create Shadow Folders(英文)。
安全提示:所有 VSS 用户都可以访问 VSS 文件夹并且可以从数据库中删除重要信息。
有关创建和使用 Windows 用户组的详细信息,请参阅 Windows 帮助。
创建管理员和 VSS 用户组
如果同一服务器上还有第二个数据库,则需要再创建两个组,例如 VSS_DB2_Admin 和 VSS_DB2_User。
如果共享数据库是在 VSS 安装过程中创建的,或者是使用 VSS Administrator 工具创建的,则该数据库的文件和文件夹会被安装在 VSS 数据库文件夹中。当共享此数据库文件夹时,会将 Windows 用户的 Everyone 组添加到共享。建议您删除 Everyone 组。
安全提示:Windows 用户可能会登录到 VSS 数据库所在的计算机,并直接访问 VSS 文件夹而不是访问共享的数据库文件夹。请检查 VSS 文件夹的权限,防止未获授权的用户访问这些文件夹。
从共享中删除 Everyone 组
其中,“位置”就是包含 VSS_DB1_Admin 和 VSS_DB1_User 组的计算机名。
下面将把这两个 VSS 组添加到数据库文件夹,删除所有其他用户和组继承的权限,并为这两个 VSS 组授予访问数据库文件夹和其他 VSS 文件夹的适当权限。要使用本文介绍的步骤添加和授予权限,数据库必须安装在 NT 文件系统 (NTFS) 上,因为在 NTFS 上可以为各个文件和文件夹分别授予权限,而文件分配表 (FAT) 文件系统则对整个共享应用相同的权限。要共享文件夹,您必须是该计算机的 Windows 管理员。
向数据库文件夹添加 VSS 组
其中,“位置”就是包含 VSS_DB1_Admin 和 VSS_DB1_User 组的计算机名。
为确保只将您明确为这两个 VSS 组定义的权限应用到此文件夹,需要删除先前从其父文件夹继承的权限。
删除数据库文件夹继承的权限
只有 VSS_DB1_Admin 和 VSS_DB1_User 组列在“组或用户名”框中。
VSS 数据库管理员组(例如 VSS_DB1_Admin)需要具有对所有 VSS 文件夹的“完全控制”权限,而 VSS 用户组被授予的权限应该受到更多的限制。在 VSS 数据库文件夹下有一个 Users 文件夹,其下为每个 VSS 用户创建了一个文件夹。您必须将每个 VSS 用户的“读取”或“写入”权限授予相应的 Users/username 文件夹。
授予 VSS 组权限
VSS_DB1_Admin | 完全控制 |
VSS_DB1_Users | 读取及列出文件夹内容 |
当有人加入或退出团队时,需要使用 VSS Administrator 程序和 Windows 权限来增加或删除单个用户。
必须使用 VSS Administrator 程序将所有新用户添加到 VSS 用户列表中,然后将其添加到某个 Windows 组(例如 VSS_DB1_Admin 或 VSS_DB1_User)中,并将相应的 Users/username 文件夹的权限指定给他们。
创建 VSS 数据库时,将自动创建 VSS 用户名 Admin,该用户名无法删除。Admin 是用于登录到 VSS Administrator 程序的唯一 VSS 用户名,只有 VSS_DB1_Admin 组的成员才有运行 VSS Administrator 程序的相应权限。因此,VSS_DB1_Admin 组中的所有成员都必须使用 VSS 用户名 Admin 及相应的密码进行登录。
添加 VSS 管理员用户
用户名最多可以包含 31 个字符,开头和结尾字符不能为空格,也不能包含任何标点符号。
密码最多可以包含 15 个字符,并且可以是任何字符。如果用户使用网络名自动登录,则不用输入密码。
有关向 Windows 组添加用户的信息,请参阅 Windows 帮助。
所有 VSS 用户均必须添加到 VSS_DB1_Users 组,并对 VSS 文件夹拥有相同的 Windows 权限,以及对相应 Users/username 文件夹拥有其他各种权限。您可以使用 VSS Administrator 程序中的 Rights 和 Assignments 命令来管理 VSS 用户,具体操作是:在用户使用 VSS Explorer 处理的 VSS 数据库中为各个 VSS 用户或各个 VSS 项目指定访问权限。
添加 VSS 用户
用户名最多可以包含 31 个字符,开头和结尾字符不能为空格,也不能包含任何标点符号。
密码最多可以包含 15 个字符,并且可以是任何字符。
注意:如果选中 Read only(只读)复选框,则该用户在使用 VSS Explorer 时对 VSS 数据库中的文件具有只读权限,但对 VSS 文件夹却与所有其他 VSS 用户具有相同的 Windows 权限。要使用户成为只读 VSS 用户,请参阅 添加只读 VSS 用户。
所有 VSS 用户对 VSS 文件夹必须拥有相同的 Windows 权限,还要拥有对相应的 Users\username 文件夹的其他各种权限。如果要限制某些 VSS 用户,使其只能读取 VSS 数据库中的文件,那么建议您不要将这些人员设为 VSS 用户或 VSS_DB1_Users 组中的成员,而应该创建一个影子文件夹,并授予这些人访问此文件夹的权限。有关影子文件夹的信息,请参阅 Create Shadow Folders(英文)。
安全提示:所有 VSS 用户都可以访问 VSS 文件夹并且可以从数据库中删除重要信息。
要禁止某用户的访问,必须从 VSS 用户列表中删除该用户,从其所在的 VSS Windows 组中删除该用户,并且删除该用户对 VSS 关联的所有文件和文件夹(例如项目的影子文件夹)的访问权限。
注意:无法删除 VSS 用户名 Admin。
删除 VSS 管理员用户
VSS 将显示一个警告对话框,询问您“Are you sure you want to delete?”(是否要删除?)
该用户的 Users/username 文件夹及其包含的 Ss.ini 文件都将被删除。
影子文件夹的位置包含在 Srcsafe.ini 文件中,请在该文件中查找“Shadow = shadow folder”。
这些文件夹和文件的位置包含在 Srcsafe.ini 文件中:
删除 VSS 用户时,相应的 Users/username 文件夹及其包含的 Ss.ini 文件会自动被删除。
删除 VSS 用户
VSS 将显示一个警告对话框,询问您“Are you sure you want to delete?”(是否要删除?)
这些文件夹和文件的位置包含在 Srcsafe.ini 文件中:
删除只读 VSS 用户
如果您按照我们的建议,使只读 VSS 用户只对影子文件夹具有权限,则请删除该用户对影子文件夹的共享权限。
您可以使用 VSS Administrator 程序中的 Rights 和 Assignments 命令来管理 VSS 用户,为各个用户、新增用户以及项目设置权限,而且还可以编辑用户属性,使该用户具有只读或读写权限。但是,对于 Windows 文件夹,必须授予所有用户相同的权限以使他们能运行 VSS,因此,当您在 VSS 中更改项目权限或更改用户任务分配时,请不要更改用户对 Windows 文件夹的权限。
在通知您的 VSS 用户 VSS 已准备就绪之前,请确保已经对数据库和 VSS 安装进行了安全设置。请核对以下内容:
Windows 文件夹或文件 | 管理员 | VSS 用户 |
---|---|---|
VSS 数据库文件夹 | 完全控制 | 读取 列出文件夹内容 |
Data | 完全控制(继承) | 修改 |
Temp | 完全控制(继承) | 修改 |
Users/username | 完全控制(继承) | 修改 |
Netsetup.exe | 完全控制(继承) | 执行 |
VSS 数据库安全性简介 | Create Shadow Folders(英文)| Access Rights(英文)