在SQL Server 2000的用户登录、身份验证阶段,有两种安全模式,即Windows认证模式和SQL Server认证模式。
1、Windows 认证模式
SQL Server数据库系统通常运行在基于NT构架的Windows 2000上,而Windows 2000作为网络操作系统,本身就具备管理登录,验证用户合法性的能力。
所以Windows认证模式正是利用这一用户安全性和帐号管理的机制,允许在SQL Server中使用Windows 2000的用户名和口令登录。
当然,SQL Server系统管理员必须把Windows 2000帐户映射成SQL Server 登录帐户。
在Windows 2000中可使用用户组,所以当使用Windows认证模式时,我们总是把用户归入一定的Windows 2000用户组,以便当在SQL Server中对Windows 2000用户组进行数据库访问权限设置时,能够把这种权限传递给每一用户。
当新增加一个登录用户时,也总把它归入某一用户组,这种方法可以使用户更为方便地加入到系统中,并消除了逐一为每个用户进行数据库访问权限设置而带来的不必要的工作量。
2、SQL Server认证模式
在该认证模式下,用户在连接SQL Server时必须提供登录名和登录密码, SQL Server自己执行认证处理。如果输入的登录信息与SQL Server 系统表中的记录相匹配,则允许该用户登录到SQL Server。否则将拒绝该用户的连接请求。用户的登录帐户信息保存在master数据库中的sysxlogins系统表中。
使用SQL Server认证模式的优点是:允许非Windows NT/2000用户及Internet客户端连接SQL Server。例如,当用户在运行Windows 98的客户机上申请连接SQL Server 时,由于Windows 98不支持Windows 身份验证,因此只能使用SQL Server认证模式。
3、认证模式对比
Windows认证模式与SQL Server认证模式相比优点是:用户启动Windows进入SQL Server不需要两套登录名和密码,简化了系统操作。
更重要的是Windows认证模式充分利用了Windows 2000强大的安全性能及用户帐户管理能力。
Windows 2000安全管理具有众多特点,如安全合法性、口令加密、对密码最小长度进行限制、设置密码期限以及多次输入无效密码后锁定帐户等。
二、选择身份认证模式
当 SQL Server 2000 在Windows NT/2000 上运行时,可以指定下面两种身份验证模式之一:
1、Windows 身份验证模式
只进行 Windows 身份验证。用户不能指定 SQL Server 2000 登录 ID。这是 SQL Server 2000 的默认身份验证模式。
混合模式
如果用户在登录时提供了 SQL Server 2000 登录 ID,则系统将使用 SQL Server 身份验证对其进行验证。如果没有提供 SQL Server 2000 登录 ID 或请求 Windows 身份验证,则使用 Windows 身份验证对其进行身份验证。
2、选择身份认证模式
身份认证模式可以在安装过程中指定或使用 SQL Server 企业管理器指定。
在安装SQL Server 2000或者第一次使用SQL Server连接其它服务器的时候,需要指定认证模式。
对于已经指定认证模式的SQL Server服务器,也可以进行修改。设置或修改认证模式的用户必须使用系统管理员或安全管理员帐户。
三、创建和管理SQL Server登录帐号
1.使用企业管理器创建登录帐号
在企业管理器中创建用户登录帐号的步骤如下:
- 在企业管理器中,选择服务器组中相应的服务器。
- 展开
文件夹,在登录图标
上右击鼠标,在弹出的快捷菜单上选择
,打开“SQL Server登录属性—新建登录”对话框。 - 如果要将一个Windows 2000帐号加入SQL Server中,在“身份验证”中选择“Windows身份验证”,然后单击
栏右侧的
按钮,从中选择一个Windows用户或组帐号。 - 如果要新建一个SQL Server 2000登录帐号,在“身份验证”中选中“SQL Server 身份验证”,然后在
栏输入帐号名,在
栏中输入密码。 - 在
部分,在“数据库”中,选择登录到 SQL Server之后将连接的默认数据库;在“语言”中,选择显示给用户的信息所用的默认语言。 - 单击
按钮,就可以完成创建一个用户登录帐号的工作。
2.在企业管理器中管理登录帐号
如果要查看登录帐号,只需在企业管理器中展开对应服务器下的
文件夹,鼠标单击登录图标
,在右侧的项目窗口即显示当前服务器中的用户和用户组信息。如下图所示。
![]()
上图项目窗口中显示了两个SQL Server 2000系统自动创建的登录帐号:
① BUILTIN\Administrators:默认的Windows身份验证登录帐号。凡属于Windows 2000中本地系统管理员组(Administrators)的帐号都允许通过它登录SQL Server(BUILTIN代表Windows 2000内建本地组)。它具有SQL Server服务器及所有数据库的全部权限。
② sa:SQL Server系统管理员帐号(sa即为system administrator的缩写)。是默认的SQL Server身份验证登录帐号。这是为了系统向后兼容而保留的特殊登录帐号,它也具有SQL Server服务器及所有数据库的全部权限。该帐号无法删除,为了系统安全,必须为其设置合适的密码口令,在安装SQL Server 2000时就有要求为sa设置密码。
如果要修改用户帐户,鼠标右击该用户帐号,从弹出的快捷菜单中选择“属性”选项,打开“SQL Server 登录属性”对话框,可在该对话框中直接进行修改。其操作与创建用户帐户相同。
如果要删除用户帐户,鼠标右击该用户帐号,从弹出的快捷菜单中选择“删除”选项。然后在“确认删除”对话框中单击
按钮。
有时可能要暂时禁止一个登录帐号连接SQL Server,过一段时间又恢复它。这时,可以在 “SQL Server登录属性”对话框中设置“允许访问”或“拒绝访问”。但这一设置仅针对Windows 登录帐号,对SQL Server登录帐号,要想禁止它的连接,只能将其帐号删除,以后需要时再重新设立。
无论是创建、修改或删除用户帐户,均只有使用系统管理员或安全管理员帐户登录的用户才能进行操作。
3.使用系统存储过程创建和管理登录帐户
SQL Server 2000提供了下列系统存储过程,用于创建和管理登录帐号。
sp_addlogin
功能:创建使用SQL Server认证模式的新的登录帐号。
sp_droplogin
功能:删除SQL Server登录帐号。
sp_grantlogin
功能:设定一Windows 用户或用户组为SQL Server登录者。
