理解SQL Server的安全模式

SQL Server有三种安全模式,参考登录模式:

标准安全模式

WINDOWS NT 集成安全模式

混合安全模式

以下就是关于这三种模式的描述。

标准安全模式

标准安全模式是缺省的登录模式。当你使用标准安全模式时,SQL Server自己来决定谁有权限来访问这个服务器。如果你使用了这种配置,你必须为所有的进程建立能访问服务器的登录ID号。

当你在运行Internet Infornation和Active Server Page的系统上使用标准安全模式时,你必须建立一个和sa帐户不同的登录ID号。如果INTERNET用户运行以sa帐户的身份来登录,那么他就有权限来改变你的数据库内的所有的数据。这是及其危险的。为了解决这个问题,你必须建立一个限制了权限的用户(权限的分配我们会在后面的章节讨论,“用户组,用户,和权限”)。

你可以为INTERNET的登录用户取任何的名字。例如,你可以把他命名为WEBUSER。 为了建立这个新的登录ID号,你可以在SQL Enterprise Manager的菜单中选择Manage|Lodins。管理登录的对话框就会出现。然后,从Login Name的下拉式框中选择New User。然后输入你的INTERNET用户所使用的名字。你还需要输入一个密码, 这个密码是INTERNET用户访问你的服务器时认证所使用的。在你说明了这些信息以后,点击Add,一个新的登录ID号就会被加入。

集成安全模式

集成安全模式是SQL Server的另一种可用的安全模式。使用了集成安全模式以后,你的安全认证工作就全部有WINDOWS NT来完成。也就是说,所有的WINDOWS NT帐户都可以访问SQL Server。

使用集成安全模式的好处就是你不必要费心去维护两个系统的安全。 你只需要在NT 的安全框架内建立一个有合适的权限的新用户就可以了。 一旦建立了一个WINDOWS NT 的用户,这个帐户会自动地映射成为SQL Server在SQL Secure Manager 中的一个登录ID号。 (要知道任何做,见后面的“SQL Secure Manager”)。

你需要进行几步操作来激活这种安全模式:

在SQL Server按照以后,选择开始|程序|SQL65|SQL Enterprise Manager

选择Server|SQL Server|Configure|来打开服务器选项配置的对话框(见图3.7)。 然后点击安全选项的一页(见图3.8)。

图3.8 服务器配置的菜单选项

 

 

 

 

 

 

 

 

 

 

 

选择WINDOWS NT集成模式。

对于缺省域的选择,你要说明你的SQL Server用户在哪一个域内存在,如果你不是一个域的成员,你可以SQL Server所在的WINDOWS NT 服务器的名字。

对于缺省登录帐户的选择,就是指你要使用的缺省登录帐户。缺省登录帐户是给那些没有一个有效的登录帐户的用户使用的。

如果需要的话,你可以选择配置主机名和用户名的选项。在你选择上以后,在运行存储过程Sp_who时,这个选项会显示你的机器名。

你有必要设置映射选项。 这些选项可以使你能够重新分配无效的字符(*,-,#,/)。

在这些合适的选项都被选择了以后,退出SQL Server,重新启动服务器。

图3.8 SQL配置的安全模式选项

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分配用户名

如果你决定使用集成安全模式,一定要非常小心地分配你的用户名。先确定一种命名习惯,然后坚持使用它。 有很多的字符(例如:-,#,@, *, /, \)是SQL Server所不支持的字符,但是WINDOWS NT 却支持。SQL Server允许你把这些字符映射成一些它可以接收的字符。从以往的实践来看,你最好取一些简单的,没有SQL Server不接收的字符的名字,例如,John Propeller可以命名为PropellerJ,但是,SQL Server会需要你把Propeller-J映射成Propeller_J。 因为连字符号(-)会造成错误(参考图3.8)。

混合安全模式

混合安全模式有标准安全模式和集成安全模式两种模式的好处。 你可以把WINDOWS NT的帐户和SQL Server的帐户混在一起用。你可以直接在SQL Server中添加用户,也可以在通过SQL Secure Manager给WINDOWS NT的用户组赋予权限(见以后的章节“SQL Secure Manager”)。

混合安全模式和集成安全模式的唯一不同就是在NT用户的帐户上。使用集成安全模式,一个用户必须拥有一个帐户,而且要成为一个有权限访问SQL Server数据库的用户组的成员,才能服务器数据库。 在这种模式下,你不能直接为SQL Server添加登录ID号。但是,在混合模式下,你可以直接为SQL Server添加登录ID号。 在NT的用户数据库内的帐户和任何在SQL Server中添加的登录ID号一样都有权限访问数据库。因为混合安全模式的在维护NT登录帐户时的灵活性,我们推荐使用它。