用户组，用户，和权限

在取名的部分，你已经学会了如何建立登录ID号，登录ID号提供的是一种很低级的安全。他们就象一个进入SQL Server的密码一样。他们只能决定谁能访问SQL Server，然而在他们进入SQL Server以后，他们不能用户能作哪些操作。为了更清楚地说明权限，你必须为用户组和用户定义权限。

每一个SQL Server数据库，存储过程，和表都和权限有关。 只有特定的用户和用户组有权限访问每个对象或对它进行某种特定的操作。 当SQL server 在World Wide Web上工作时，对每一个对象的权限的合理分配尤其重要。

例如：假如你有一个表名为CreditCards，它包含了那些从你的站点上购买过商品的人的信用卡。你将不允许一个INTERNET上的陌生人访问这个表。所以，你需要非常仔细地配置这个表的权限，防止这些重要的数据落入坏人之手。

在这个例子中信用卡表，你需要这样来配置它的权限，从INTERNET上来的用户只能向表内添加数据，而不能读取表内的数据。你允许用户向表内添加自己的信用卡号码，而不允许用户读取其他人的号码。那么，你怎样才能做到这样？

权限和登录ID号是无关的。它是和用户组和用户有关的。因此，你要作的第一件事就是建立一个新用户，并把它和WEB站点的用户所使用的登录ID号联系起来。以下就是这些必要的步骤：

> 选择CreditCards表所在的数据库。有一个用户被设置成和这个特定数据库相关。

> 选择Manage|Users。管理用户的对话框就会出现（见图3.9）。

> 输入一个你想设置的用户名。例如：Webvistor。

> 从登录的下拉式框中，选择一个特定的登录ID号。把这个ID和用户名进行映射。

> 点击OK建立新用户。

图3.9 管理用户的对话框

现在你已经建立了一个新用户，也赋予了它一定的权限。你可以有一个选择：你可以要么对用户说明权限，要么对对象说明权限。这里是关于为对象配置的几个步骤：

> 通过点击表的名字来选择CreditCards表。

> 选择Object|Permissions。 有关对象权限的对话框就出现了（见图3.10）。

> 选择标有By Object的一页。如何会出现用户和用户组的列表。

> 选上在Webvisitor用户旁边的Insert框。选上这个框，你就给用户Webvistor赋予了向表中添加数据的权限。

> 你一定要确保不要选上在Webvisitor用户旁边的Select框。如果你没有选上这个框，用户Webvistor就没有通过SELECT语句从表中提取数据的权限。

> 点击Set按钮。点击了这个按钮，你真正地改变了这些权限。

> 点击Close关闭对话框。

图3.10 管理对象权限的对话框

技巧

在开发出现的时候，经常需要简单地把对所有的用户的权限限制都取消。为了达到这个目的，你只要在管理对象权限的对话框内，点击Grant All按钮，然后点击Set按钮，这样就把所有的权限分配给你的用户和用户组了。

如果不一个一个地为每一个用户说明权限，你也可以为一组用户说明权限。例如， 你可以建立一个网络可信连接的组和另一个网络非可信连接的组。你可以这样配置，使前一个组几乎具有访问任何对象的权限，而后一个组则只具有很少的权限，几乎不能访问任何数据库。

为了建立一个新组，你可以按以下步骤操作：

> 限制数据库的名字。把一个组和一个特定的数据库联系上。

> 限制Manage|Group。管理用户组的对话框就会出现。

> 输入一个新的用户组名。

> 使用Add按钮，把你需要的用户加入到这个新的用户组中。

> 点击Add(在屏幕的右上角的第二个Add按钮)，把这个新组加入到数据库中。

和为一个特定的用户分配权限一样，你也可以为一个用户组分配权限：点击用户组的名字，然后选择Object|Permission。你可以说明哪些数据库这个用户组的成员可以访问，和哪些操作是这个用户组的成员允许操作的。