本文分为两部分。有关在创建和管理 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 Windows 文件夹的 VSS 数据库管理员组中的成员才能执行管理员任务,包括运行 Analyze 和恢复存档的 VSS 文件与项目。
- 设置 VSS 安全性之后,所有的 VSS 管理员和 VSS 用户还可以按设置之前的方式使用 VSS。
- 不是 VSS 用户的人员将无权访问 VSS 所在的网络共享位置,因此也就无法访问数据库。
锁定数据库不能提供:
- 项目级安全性。您可以使用 VSS Administrator 程序为特定的 VSS 项目或各别 VSS 用户设置权限和分配任务,但所有 VSS 用户必须都拥有相同的 Windows 文件夹权限。因此,所有 VSS 用户,不管他们在 VSS Administrator 程序中指定的项目级权限如何,均可以访问共享文件夹,并且可以完全控制所有的 VSS 数据,但那些用于控制和管理程序及数据库的文件除外。请勿使用共享数据库来存储包含敏感信息的文件,例如工资信息或法律文档。
- 只读 VSS 用户。如果要限制某些 VSS 用户,使其只能读取 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 用户组可以简化您的管理任务并提高管理效率。您需要创建两个 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 数据库服务器上创建两个 Windows 用户组,例如 VSS_DB1_Admin 和 VSS_DB1_User。
如果同一服务器上还有第二个数据库,则需要再创建两个组,例如 VSS_DB2_Admin 和 VSS_DB2_User。
- 将 VSS 用户列表中的每个用户都添加到其中一个组中。
- 重新启动 VSS 服务器。
从共享中删除 Everyone 组
如果共享数据库是在 VSS 安装过程中创建的,或者是使用 VSS Administrator 工具创建的,则该数据库的文件和文件夹会被安装在 VSS 数据库文件夹中。当共享此数据库文件夹时,会将 Windows 用户的 Everyone 组添加到共享。建议您删除 Everyone 组。
安全提示:Windows 用户可能会登录到 VSS 数据库所在的计算机,并直接访问 VSS 文件夹而不是访问共享的数据库文件夹。请检查 VSS 文件夹的权限,防止未获授权的用户访问这些文件夹。
从共享中删除 Everyone 组
- 使用 Windows 资源管理器,找到 VSS 数据库文件夹(其中包含数据库的 Srcsafe.ini 文件),然后选中该文件夹。
- 在“文件”菜单上,单击“属性”,然后单击“共享”选项卡。
- 选择“共享该文件夹”。
- 如果不希望使用默认设置,请在“共享名”键入新的名称。
- 单击“权限”。
- 如果“组或用户名”框中包含“Everyone”,请单击“删除”,然后单击“确定”。
- 单击“添加”。
- 在“选择用户、计算机或组”对话框中,单击“位置”。
- 查找并单击包含 VSS_DB1_Admin 和 VSS_DB1_User 组的“位置”,然后单击“确定”。
其中,“位置”就是包含 VSS_DB1_Admin 和 VSS_DB1_User 组的计算机名。
- 在“输入要选择的对象名”框中添加 VSS_DB1_Admin 和 VSS_DB1_User 组。
- 单击“确定”将这些组添加到“共享权限”选项卡上的“组或用户名”框中。
- 选择 VSS_DB1_Admin 组,然后选中“完全控制”的“允许”复选框。
- 选择 VSS_DB1_Use 组,然后选中“更改”的“允许”复选框。
添加并授予组权限
下面将把这两个 VSS 组添加到数据库文件夹,删除所有其他用户和组继承的权限,并为这两个 VSS 组授予访问数据库文件夹和其他 VSS 文件夹的适当权限。要使用本文介绍的步骤添加和授予权限,数据库必须安装在 NT 文件系统 (NTFS) 上,因为在 NTFS 上可以为各个文件和文件夹分别授予权限,而文件分配表 (FAT) 文件系统则对整个共享应用相同的权限。要共享文件夹,您必须是该计算机的 Windows 管理员。
向数据库文件夹添加 VSS 组
- 使用 Windows 资源管理器找到 VSS 数据库文件夹,并选中该文件夹。
- 在“文件”菜单上,单击“属性”,然后单击“安全”选项卡。
- 单击“添加”。
- 在“选择用户、计算机或组”对话框中,单击“位置”。
- 查找并单击包含 VSS_DB1_Admin 和 VSS_DB1_User 组的“位置”,然后单击“确定”。
其中,“位置”就是包含 VSS_DB1_Admin 和 VSS_DB1_User 组的计算机名。
- 在“输入要选择的对象名”框中添加 VSS_DB1_Admin 和 VSS_DB1_User 组。
- 单击“确定”将这些组添加到“安全”选项卡上的“组或用户名”框中。
- 选择 VSS_DB1_Admin 组,然后选中“完全控制”的“允许”复选框。
- 选择 VSS_DB1_Use 组,然后选中“列出文件夹内容”和“读取”的“允许”复选框。
为确保只将您明确为这两个 VSS 组定义的权限应用到此文件夹,需要删除先前从其父文件夹继承的权限。
删除数据库文件夹继承的权限
- 单击“高级”。
- 在“权限”选项卡上,清除“从父项继承那些可以应用到子对象的权限项目,包括那些在此明确定义的项目。”复选框。
- 单击“删除”。
- 在“权限”选项卡上,单击“确定”。
只有 VSS_DB1_Admin 和 VSS_DB1_User 组列在“组或用户名”框中。
VSS 数据库管理员组(例如 VSS_DB1_Admin)需要具有对所有 VSS 文件夹的“完全控制”权限,而 VSS 用户组被授予的权限应该受到更多的限制。在 VSS 数据库文件夹下有一个 Users 文件夹,其下为每个 VSS 用户创建了一个文件夹。您必须将每个 VSS 用户的“读取”或“写入”权限授予相应的 Users/username 文件夹。
授予 VSS 组权限
- 将以下权限授予 VSS 数据库文件夹的两个组:
VSS_DB1_Admin 完全控制 VSS_DB1_Users 读取及列出文件夹内容 - 选择 Data 文件夹,将 VSS_DB1_Users 组的权限设置为“修改”。
- 选择 Temp 文件夹,将 VSS_DB1_Users 组的权限设置为“修改”。
- 为每个 Users/username 文件夹添加使用相应 VSS 登录的 Windows 用户,例如,将 Domain/BenSmith 添加到 Users/BenSmith。将该文件夹的用户权限设置为“修改”。
- 如果要由 VSS 用户运行 NetSetup,请选择文件 Netsetup.exe 并将 VSS_DB1_Users 的权限设置为“执行”。
过程中的安全管理
当有人加入或退出团队时,需要使用 VSS Administrator 程序和 Windows 权限来增加或删除单个用户。
向现有数据库添加 VSS 用户
必须使用 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 管理员用户
- 使用 VSS Administrator 程序选择所需的数据库。有关详细信息,请参阅 Open a VSS Database(英文)。
- 在 VSS Administrator 程序的 User(用户)菜单上,单击 Add User(添加用户)。
- 在 User Name(用户名)框中输入用户名。
用户名最多可以包含 31 个字符,开头和结尾字符不能为空格,也不能包含任何标点符号。
- 在 Password(密码)框中输入用户密码。
密码最多可以包含 15 个字符,并且可以是任何字符。如果用户使用网络名自动登录,则不用输入密码。
- 单击 OK(确定)。
- 向 Windows 组 VSS_DB1_Admin 添加相应的 Windows 用户。
有关向 Windows 组添加用户的信息,请参阅 Windows 帮助。
所有 VSS 用户均必须添加到 VSS_DB1_Users 组,并对 VSS 文件夹拥有相同的 Windows 权限,以及对相应 Users/username 文件夹拥有其他各种权限。您可以使用 VSS Administrator 程序中的 Rights 和 Assignments 命令来管理 VSS 用户,具体操作是:在用户使用 VSS Explorer 处理的 VSS 数据库中为各个 VSS 用户或各个 VSS 项目指定访问权限。
添加 VSS 用户
- 使用 VSS Administrator 程序选择所需的数据库。有关详细信息,请参阅 Open a VSS Database(英文)。
- 在 VSS Administrator 程序的 User(用户)菜单上,单击 Add User(添加用户)。
- 在 User Name(用户名)框中输入用户名。
用户名最多可以包含 31 个字符,开头和结尾字符不能为空格,也不能包含任何标点符号。
- 在 Password(密码)框中输入用户密码。
密码最多可以包含 15 个字符,并且可以是任何字符。
- 要授予用户只读权限,请选中 Read only(只读)复选框。
注意:如果选中 Read only(只读)复选框,则该用户在使用 VSS Explorer 时对 VSS 数据库中的文件具有只读权限,但对 VSS 文件夹却与所有其他 VSS 用户具有相同的 Windows 权限。要使用户成为只读 VSS 用户,请参阅添加只读 VSS 用户。
- 单击 OK(确定)。
- 向 Windows 组 VSS_DB1_Users 添加用户。
- 授予用户对相应 Users/username 文件夹的“修改”权限。
所有 VSS 用户对 VSS 文件夹必须拥有相同的 Windows 权限,还要拥有对相应的 Users/username 文件夹的其他各种权限。如果要限制某些 VSS 用户,使其只能读取 VSS 数据库中的文件,那么建议您不要将这些人员设为 VSS 用户或 VSS_DB1_Users 组中的成员,而应该创建一个影子文件夹,并授予这些人访问此文件夹的权限。有关影子文件夹的信息,请参阅 Create Shadow Folders(英文)。
安全提示:所有 VSS 用户都可以访问 VSS 文件夹并且可以从数据库中删除重要信息。
删除 VSS 用户
要禁止某用户的访问,必须从 VSS 用户列表中删除该用户,从其所在的 VSS Windows 组中删除该用户,并且删除该用户对 VSS 关联的所有文件和文件夹(例如项目的影子文件夹)的访问权限。
注意:无法删除 VSS 用户名 Admin。
删除 VSS 管理员用户
- 从 VSS Administrator 程序的用户列表中选择 User(用户)。
- 在 Users(用户)菜单上,单击 Delete User(删除用户)。
VSS 将显示一个警告对话框,询问您“Are you sure you want to delete?”(是否要删除?)
- 单击 OK(确定)。
该用户的 Users/username 文件夹及其包含的 Ss.ini 文件都将被删除。
- 从 Windows 组 VSS_DB1_ Admin 中删除该用户。
- 删除管理员创建的不再需要的所有影子文件夹。
影子文件夹的位置包含在 Srcsafe.ini 文件中,请在该文件中查找“Shadow = shadow folder”。
- 如果管理员具有以下文件夹和文件的权限,请删除这些权限。
这些文件夹和文件的位置包含在 Srcsafe.ini 文件中:
- 影子文件夹 (Shadow = shadow folder)
- Web 部署文件夹 (Deploy_Path = folder)
- 日志文件 (Journal_File = filename)。
- 如果管理员将 Web 项目部署到远程位置,通过文件传输协议 (FTP) 使用,请考虑更改与部署路径相关的密码。有关信息,请参阅 Web Projects Options Tab(英文)。
删除 VSS 用户时,相应的 Users/username 文件夹及其包含的 Ss.ini 文件会自动被删除。
删除 VSS 用户
- 从 VSS Administrator 程序的用户列表中选择 User(用户)。
- 在 Users(用户)菜单上,单击 Delete User(删除用户)。
VSS 将显示一个警告对话框,询问您“Are you sure you want to delete?”(是否要删除?)
- 单击 OK(确定)。
- 从 Windows 用户组 VSS_DB1_ Users 中删除该用户。
- 如果 Windows 用户具有以下文件夹和文件的权限,请删除该用户的这些权限。
这些文件夹和文件的位置包含在 Srcsafe.ini 文件中:
- 影子文件夹 (Shadow = shadow folder)
- Web 部署文件夹 (Deploy_Path = folder)
- 日志文件 (Journal_File = filename)。
- 如果 VSS 用户将 Web 项目部署到远程位置,通过文件传输协议 (FTP) 使用,请考虑更改与部署路径相关的密码。有关信息,请参阅 Web Projects Options Tab(英文)。
删除只读 VSS 用户
如果您按照我们的建议,使只读 VSS 用户只对影子文件夹具有权限,则请删除该用户对影子文件夹的共享权限。
使用 VSS Administrator 程序管理项目权限和用户任务分配
您可以使用 VSS Administrator 程序中的 Rights 和 Assignments 命令来管理 VSS 用户,为各个用户、新增用户以及项目设置权限,而且还可以编辑用户属性,使该用户具有只读或读写权限。但是,对于 Windows 文件夹,必须授予所有用户相同的权限以使他们能运行 VSS,因此,当您在 VSS 中更改项目权限或更改用户任务分配时,请不要更改用户对 Windows 文件夹的权限。
核对表
在通知您的 VSS 用户 VSS 已准备就绪之前,请确保已经对数据库和 VSS 安装进行了安全设置。请核对以下内容:
- 已从 VSS 数据库文件夹中删除 Windows 的 Everyone 用户组。
- 只有 VSS 组和用户才有权访问 VSS 文件夹,在数据库的 VSS 数据库文件夹的“安全”选项卡中,没有列出任何其他的组和用户,因而也不具有继承的权限。
- 已为 VSS 创建了两个 Windows 用户组:管理员和 VSS 用户。
- 已正确设置好 VSS 文件夹的权限及其子文件夹的继承权限:
Windows 文件夹或文件 管理员 VSS 用户 VSS 数据库文件夹 完全控制 读取 列出文件夹内容
Data 完全控制(继承) 修改 Temp 完全控制(继承) 修改 Users/username 完全控制(继承) 修改 Netsetup.exe 完全控制(继承) 执行 - 如果有些 VSS 用户只需要对 VSS 数据库中的项目具有读权限,则可以给这些用户授予项目影子文件夹的访问权限,但这些用户并不是 VSS 用户组中的成员。
- 对只有管理员才可以访问的文件夹,删除 VSS 用户组的访问权限。
- 您已经检查并有选择地实施了 VSS 数据库安全简介中的其他注意事项。
- 已删除包含敏感或机密信息的文档,以避免这些文档被 VSS 数据库的所有用户获得。
- VSS 数据库管理员已准备了包含添加和删除 VSS 用户的过程的说明,以维护数据库的安全。
请参阅
VSS 数据库安全性简介 | Create Shadow Folders(英文)| Access Rights(英文)