作者:Saad Ladki
先决条件
本演练假定使用以下环境:
- Web 服务器上已安装 IIS 数据库管理器(<数据库管理器下载链接>)。
- 数据库服务器(可与 Web 服务器驻留在同一物理计算机上)
做好准备
我们在本演练中使用一种场景:假设我们要为虚构站点 www.fabrikam.com
上的资源创建访问控制列表。 为此,我们将生成 2 个表:
第一个表“FabrikamUsers”将包含每个用户的用户 ID、用户名和电子邮件地址。
第二个表“AccessControls”将包含对用户 ID、资源 URL 的引用,以及是否允许用户访问资源。
创建新表
创建新表:
打开“Internet Information Services (IIS)管理器” 。
转到数据库管理器并展开数据库连接节点(有关创建数据库连接的详细信息,请参阅 IIS 数据库管理器基础知识)。
在“表”节点上,右键单击并选择“新建表”。
编辑器区域中将显示一个新选项卡。 花点时间熟悉工具栏上的按钮:
- 新建列:可用于向表定义添加新列。
- 删除列:可用于删除表定义的现有列。
- 索引/键:可用于定义表的索引或主键。
- 关系:可用于定义表的外键关系。
- 保存:可用于保存对表所做的更改。
单击工具栏中的“新建列”。 将创建新列,并显示“列属性”窗格。
在“列属性”中,执行以下操作:
- 键入“UserId”作为列名称。
- 将“允许为 Null”设置为“False”。
- 将“数据类型”设置为“int”。
- 将“默认值”留空。
- 将“IsIdentity”设置为“True”。
现在,单击“索引/键”图标将此字段设为主键。 此时会打开一个新对话框。
在对话框中,单击“添加”按钮,然后填写主键信息,如下所示:
- 将“列”设置为“UserId”。
- 将“是否唯一”设置为“True”。
- 将“类型”设置为“主键”。
- 将“名称”设置为“PK_UserId”。
单击“关闭”以关闭对话框。
单击工具栏中的“新建列”,为用户名添加另一列。
在“列属性”中,执行以下操作:
- 键入“Username”作为列名称。
- 将“允许为 Null”设置为“False”。
- 将“数据类型”设置为“varchar”。
- 将“长度”设置为 50。
最后,单击工具栏中的“新建列”,为电子邮件地址添加另一列。
在“列属性”中,执行以下操作:
- 键入“Email”作为列名称。
- 将“允许为 Null”设置为“True”。
- 将“数据类型”设置为“varchar”。
- 将“长度”设置为 100。
单击工具栏上的“保存”,将打开保存对话框。
在“表名称”中,键入“FabrikamUsers”。 还可以指定架构或将“架构名称”字段留空,以便为数据库用户使用默认架构。
现在,让我们定义“AccessControls”表。 我们将遵循与上述类似的步骤:
在“表”节点上,右键单击并选择“新建表”。 编辑器区域中将显示一个新选项卡。
单击工具栏中的“新建列”。 将创建新列,并显示“列属性”窗格。
在“列属性”中,执行以下操作:
- 键入“ACId”作为列名称。
- 将“允许为 Null”设置为“False”。
- 将“数据类型”设置为“int”。
- 将“默认值”留空。
- 将“IsIdentity”设置为“True”。
现在,单击“索引/键”图标将此字段设为主键。 此时会打开一个新对话框。
在对话框中,单击“添加”按钮,然后填写主键信息,如下所示:
- 将“列”设置为“ACId”。
- 将“是否唯一”设置为“True”。
- 将“类型”设置为“主键”。
- 将“名称”设置为“PK_ACId”。
单击“关闭”以关闭对话框。
单击工具栏中的“新建列”,为引用的用户添加另一列。
在“列属性”中,执行以下操作:
- 键入“UserId”作为列名称。
- 将“允许为 Null”设置为“False”。
- 将“数据类型”设置为“int”。
- 将“IsIdentity”设置为“False”。
单击工具栏中的“新建列”,为资源添加另一列。
在“列属性”中,执行以下操作:
- 键入“ResourceURL”作为列名称。
- 将“允许为 Null”设置为“False”。
- 将“数据类型”设置为“varchar”。
- 将“长度”设置为 200。
最后,单击工具栏中的“新建列”,添加另一列以指定访问权限。
在“列属性”中,执行以下操作:
- 键入“IsUserAllowed”作为列名称。
- 将“允许为 Null”设置为“False”。
- 将“数据类型”设置为“Bit”。
- 将“默认值”设置为“False”。
单击工具栏上的“保存”,将打开保存对话框。
在“表名称”中,键入“AccessControls”。 还可以指定架构或将“架构名称”字段留空,以便为数据库用户使用默认架构。
修改现有表
使用数据库管理器可以编辑现有表的定义。 更具体而言,可以执行以下操作:
- 添加、修改或删除新列。
- 添加、修改或删除主键。
- 添加、修改或删除外键关系。
创建两个表“FabrikamUsers”和“AccessControls”后,让我们将它们链接在一起。 我们需要编辑“AccessControls”表并向“FabrikamUsers”表添加外键关系:
- 打开 IIS 管理器并导航到数据库管理器。
- 展开数据库管理器树状视图中的数据库连接节点(有关创建数据库连接的详细信息,请参阅 IIS 数据库管理器基础知识)。
- 展开“表”节点。 现在应会看到所有数据库表的列表,包括“FabrikamUsers”和“AccessControls”。
- 选择“AccessControls”,然后单击工具栏上的“打开表定义”。 此时会打开一个表设计视图,并显示我们在“创建新表”中创建的列。
- 在表设计视图的工具栏上,单击“关系”。 此时会打开“外键关系”对话框。
- 单击“添加” 。 将显示新的外键关系编辑器。
- 在外键关系编辑器中,选择“表和列规范”,然后单击省略号“…”按钮。 此时会打开“表和列”对话框。
- 在“关系名称”字段中,键入“FK_AccessControlsForUsers”。
- 在“主键表”下拉列表中,选择“FabrikamUsers”。 现在,应会看到“FabrikamUsers”表中主键的下拉列表。 确保已选择“UserId”。
- 在第二个下拉列表中,应会看到“AccessControls”中的列列表。 选择“UserId”,然后单击“确定”关闭对话框。
- 单击“外键关系”对话框中的“关闭”。
- 单击“保存”更新表。 现在我们在“FabrikamUsers”表和“AccessControls”表之间创建了一个关系。
更改表数据
使用数据库管理器可以修改现有表中的数据。 更具体而言,可以执行以下操作:
- 添加新行。
- 修改现有行中的值(适用于支持的数据类型<支持的数据类型的链接>)。
- 删除现有行。
让我们开始使用一些用户信息填充“FabrikamUsers”和“AccessControls”表:
- 打开 IIS 管理器并导航到数据库管理器。
- 展开数据库管理器树状视图中的数据库连接节点(有关创建数据库连接的详细信息,请参阅 IIS 数据库管理器基础知识)。
- 展开“表”节点。 现在应会看到所有数据库表的列表,包括“FabrikamUsers”和“AccessControls”。
- 右键单击“FabrikamUsers”,然后选择“显示表数据”。 现在应会看到表中的数据。 还应有一行前面带有“*”,可用该行来输入新数据。
- 在新行 (*) 中,单击“Username”列,然后键入“John Doe”。 接下来,单击“Email”列,然后键入“JohnDoe@fabrikam.com”。
- 输入新行的信息后,按 Enter 键。 信息现已保存在数据库中。 请注意,“UserId”字段会自动填充增量值,因为该字段被标记为标识。
- 再添加几行示例用户名和电子邮件地址。
- 右键单击“AccessControls”,然后选择“显示表数据”。 现在应会看到表中的数据。 还应有一行前面带有“*”,可用该行来输入新数据。
- 在新行 (*) 中,单击“UserId”列,然后键入“1”。 输入此 UserId 值将指向“FabrikamUsers”表中的第一条记录(根据我们的示例,该记录应为“John Doe”。
- 接下来,单击“ResourceURL”列并键入“admin.aspx”,然后在 IsUserAllowed 列中键入“True”。 这意味着用户“John Doe”可以访问虚构站点的 admin.aspx 页面。
- 再添加几行其他用户的访问权限示例。
现在,表中已有一些数据,让我们修改和删除现有行:
- 单击要修改的任何表格单元格。 在单元格中键入新值。 请注意,正在编辑的行旁边会显示铅笔。
- 单击另一个单元格或关闭表格以保存信息。 请注意,信息将保存到服务器,铅笔图标消失。
- 现在,通过单击行左侧的箭头选择一行,然后单击工具栏上的“删除”按钮。 删除之前,会弹出对话框要求确认。
- 如果选择“是”,则会在服务器上删除该信息行。