许多Windows 2000和Windows NT的系统管理员都兼职着其他的工作...
SQL Server的登录和服务器角色
在SQL Server 7.0中,可以把一个NT组映射到一个SQL Server登录上。无需为每个用户添加一个登录脚本,一个允许与SQL Server连接的NT组中的用户无需输入用户名和口令就可以与一个SQL Server连接。SQL Server根据每个用户各自的NT SID而非它们的组NT SID对用户进行跟踪,因此即使是通过组连接到SQL Server的,在SQL Server也可以判断出每个用户的变化。在一个NT组中增加用户时,该用户即可自动地拥有对SQL Server的访问权,从这个NT组中删除用户时,该用户也就失去了对SQL Server的访问权限。需要牢记的一点是,当在一个NT组中增加用户时,这些用户可以同时获得了对SQL Server的访问权限。
考虑到NT组和SQL Server之间的联系,在设置SQL Server安全性时首先需要规划NT组和用户策略。如果指定了NTFS访问权限,就可以建立一个全局组并将所有用户都放入这个组中,然后可以打开SQL Server Enterprise Manager,为这个组增加一个SQL Server登录。如果是作为一个NT系统管理员登录的,就会拥有SQL Servers的缺省安全设置,可以以DBA的身份登录SQL Server。
在Enterprise Manager窗口的左部,依次扩展Microsoft SQL Servers、SQL Server Group、你要登录的服务器和“Security”。稍后我们将说明如何用“Logins”条目把NT中的组和用户与SQL Server连接,非Windows用户如何设置用户名和口令。
在Logins之下是“Server Roles”条目,在开始添加登录前点击“Server Roles”,熟悉一下各种不同的角色,如图2所示。
这些角色与NT的特别操作者本地组(例如服务器操作者和备份操作者)有点类似,它们已经被指派了不同的权限。我们不能增加新的服务器角色,也不能对由SQL Server提供的这些服务器角色修改。我们可以把服务器角色看作是本地组。
双击一个角色打开一个标签对话框,可以在一个角色上增加新的登录,观察这个角色的成员和权限。“System Administrators”角色与超级用户等价,可以在SQL Server中进行任何操作,为了满足那些真正需要这些权限的用户的需求,应该保留这个角色。你还应该为开发人员指派“Database Creators”权限,使他们可以建立测试性的数据库。你还可以指派给初级管理人员“Security Administrators”和“Server Administrators”权限,以便在没有系统管理员的情况下他们也可以管理服务器的资源和安全性。
在熟悉了服务器角色后,又该来讨论登录问题了。唯一预定义的登录是系统管理员的登录,如果你使用的是混合模式的安全设置,首先你需要键入系统管理员口令。缺省状态下,在安装完SQL Server后的口令是空格,双击“Save”按钮,键入新的口令。如果在NT安全模式下运行SQL Server,用户不会被要求提供口令,也就无需在这里建立口令。
要为NT组或用户增加新的登录,可以右击“Logins”,选择“New Login”来打开SQL Server的登录属性━━“New Login”对话框,如图3所示。
你需要做的第一件事是在“General”标签上键入一个名字,无下拉列表的对话框提供了一个可供选择的NT组或用户名的清单(在SQL Server 2000中也有这么一项功能,但你需要输入一个用户名)。如果输入一个NT组或用户名,从下拉列表中选择包含这个组或用户的域。在选择后,域名也将出现在“Name”字段中。
你还可以利用“General”标签来允许或拒绝用户对SQL Server的访问。如果某个组中的一个用户无权访问SQL Server,你可以使这个组的其他成员拥有访问SQL Server的权限,而使这个用户不能访问SQL Server。与在NT中一样,拒绝访问权限会覆盖掉这个用户的所有权限以及作为组用户而具有的权限。
一个SQL Server登录可以使组或用户拥有与SQL Server相连接的权限,但并没有给予组或用户访问任何数据库的权限。你可以利用“General”标签为每个登录设置一个缺省的数据库,但这并不能使它拥有访问这个数据库的权限,它只是表明在组或用户有权限访问数据库时,SQL Server应该把哪个数据库与组或用户相连接。“Login Properties”属性对话框中的“Separate”标签可以指派数据库的访问权限,可以把组或用户指派给一个服务器角色。