VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > sql数据库 >
  • sql语句大全之安全性

安全性
为了透彻地讨论安装中遇到的"服务账户"对话框,需要深入研究Windows安全性。
本节中,首先考查Windows服务(而非程序)的概念,然后讨论在安装SQL Server时可以选择的不同的身份验证类型。
1.6.1 服务账户
SQL Server是作为一种Windows服务来运行的。那么,什么是服务?服务的一个很好的例子是防病毒软件,它从用户重启计算机开始到计算机关闭为止持续运行。而程序要么是载入到内存并运行着,要么是没有启动。运行服务的优势在于:如果一项工作可以作为服务运行,Windows就能够对那个进程做更多的控制。可以将服务设置为在任何用户登录以前自动启动,而所有其他程序都需要用户先登录到Windows,进而启动服务。
此外,服务完全没有用户界面。在运行时没有需要显示的表单,也没有要处理的用户输入。与进程之间唯一的交互,或者是通过单独的用户界面(完全隔离的工作单元)链接到服务中来进行(例如SSMS),或者是从那个服务自身的Windows管理中进行。源自服务的任何输出都必须输出到事件日志(Event Log)中,事件日志是用来存储服务所发出的通知的Windows区域。
服务没有界面意味着对整个进程的控制无需用户的干预。倘使服务的设计良好,Windows就能独自处理所有的可能性,并且能在任何用户登录到计算机之前启动服务。
在大多数生产环境中,SQL Server是运行在远程服务器上的,该服务器可能锁藏于安全的、受控制的地方,唯一能进入那里的人或许就是硬件工程师。在那里,甚至可能没有安装远程访问程序,因为这可能带来对计算机的未经授权的访问。SQL Server将在那里顺畅地运行着,幸运的话,完全不发生任何错误。但是,如果某天发生了错误呢?假设SQL Server是作为程序运行的,则不得不采取某种对策。即使SQL Server崩溃了,至少还有某种机制能够重新启动它。这意味着需要运行另外一个监视进程,而监视进程自身也可能导致大量问题。然而,当SQL Server作为服务运行时,是在Windows的控制之下的。一旦发生问题,无论是与SQL Server有关,还是与Windows有关,或是由任何外因所致,Windows完全能够通过服务进程来巧妙地处理发生的问题。
如果确实登录到了计算机上,那么,还可以用这个Windows用户ID登录SQL Server并启动它的服务。在你学习本书时,由于SQL Server可以运行在家庭或本地系统上,当你进入SQL Server时,多半采用的是这种方式。这就是所谓的本地系统账户(local system account)。
另一方面,也可以创建一个完全用于SQL Server的Windows登录账户。这样做有几个理由。举例来说,在对Windows账户进行一番设置后,账户的密码在使用了若干天后会过期,或者在若干次输入错误密码的登录尝试后会锁定账户。如此一来,就从许多其他事物中保护了计算机和网络。然而,SQL Server应该使用单独的账户,该账户的密码同样会过期,并且具有在若干次登录尝试失败后锁定账户的能力。这种非用户特定的"一般"账户去除了SQL Server和组织机构中人员间的联系。在图1-5中,如果考虑域用户账户选项,该账户多半是在网络环境或生产环境中。有一种选择是为每一个服务指定一个不同的账户。当迁移至公司环境中时,由于必须应对随之而来的安全问题,这会是非常至关重要的选择。
SQL Server为不同的工作提供了几种不同的处理过程。SQL Server用来运行SQL Server自己,而SQL Server代理运行一些处理过程,如批处理作业。实际上,SQL Server只应访问其自身。因此,只应该采用严格限制特权的域登录账户。
SQL Server代理运行批处理和复杂任务(包括与其他服务器协同工作的复杂任务),需要功能更强大的域账户。你的网络管理员可能已经创建了这些账户,并且知道对于这些任务来说,最好使用哪个账户或者最好创建什么账户。
现在,进一步讨论在安装过程中对于身份验证模式所做的选择。
【责任编辑:云霞 TEL:(010)68476606】
1.6.2 身份验证模式(1)
http://book.51cto.com  2009-05-15 11:25  董明等译  人民邮电出版社  我要评论()
·         摘要:《SQL Server 2008基础教程》第1章SQL Server 2008概述和安装,本章介绍了SQL Server中的安全性,使读者能轻松地知晓自己想要以何种方式实现安全性,以及如何处理不同的用户名。本节为大家介绍身份验证模式。
·         标签:身份验证模式  SQL Server  SQL Server 2008基础教程
·          
限时报名参加“甲骨文全球大会·2010·北京”及“JavaOne和甲骨文开发者大会2010”
1.6.2 身份验证模式(1
将要应用于服务器上的身份验证模式,或许是整个安装过程中最至关重要的信息以及要作出的最重大的决定。正如在前面的设置过程中看到的,关于身份验证模式有两个选择:Windows身份验证模式(Windows authentication mode)和混合模式(mixed mode)。
1. Windows身份验证模式
要登录到Windows 2003/XP/Vista机器上,必须提供用户名。关于这一点,没有选择的余地(不像Windows 9x/ME那样,是否要提供用户名是可选的)。因此,要登录到Windows,必须先验证用户名和密码。当完成这一步时,Windows事实上是在域控制器中根据用户名凭据验证用户;或者,如果Windows/SQL Server是在本地的独立机器上运行,则进行本地验证。凭据检查用户所属的访问组(用户权限)。用户可以上至管理员,具有改变计算机中任何事物的能力,也可以下至基本用户,只拥有极其有限的权限。于是这就给出了一种信任连接,换句话说,在登录Windows之后启动的应用程序可以相信,经Windows验证,账户已经通过了必要的安全检查。
当应用Windows身份验证模式时,一旦登录到Windows,SQL Server就将使用信任连接。如前面所述,这意味着SQL Server相信用户名和密码已被验证过了。可是,如果用户名不存在,那么仅基于用户ID,你将无法登录到那台机器上。如果登录无效,那么将检查用户所属的Windows组,并检查其安全性,以确定该组是否可以访问SQL Server。如果该用户具有管理员权限,则至少连接到SQL Server上是完全不成问题的。
假如其他用户可以访问你的机器,那么使用他们的用户ID和密码也能够登录到机器上。虽然这些用户可以通过找到C驱动器上的可执行文件到达SQL Server,但SQL Server首先要检查其在SQL Server中是否拥有有效的登录名。
目前的情况有点进退维谷。在安装过程中,需要了解安全性,可是要充分说明它意味着要在SSMS中进行工作,这是第2章要讲述的内容。为了使其简单,现在先看一个涉及安全性的例子。
练习:Windows身份验证模式
(1) 确保以管理员身份登录到机器上。如果是本地计算机,有可能当前的登录名就是管理员ID;如果是网络中的计算机,并且不能确定访问权限,请求助于计算机管理人员帮助解决ID和密码的问题。在Windows Vista中,如果想避免每一步都出现一个对话框向你确认是否要继续,你需要修改用户账户控制的设置。
(2) 单击"开始"→"控制面板",选择"用户账户"。
(3) 当出现用户和密码对话框时,在XP上单击"创建一个新账户",在Vista上单击"管理其他账户",随后再单击"创建一个新账户"。
(4) 如图1-11所示,当出现"为新账户起名"对话框时,输入用户名JThakur。

http://new.51cto.com/files/uploadimg/20090515/1130150.jpg
(点击查看大图)图1-11 创建新的用户账户
 

(5) 确保在XP指定的账户类型是"受限"或在Vista指定的账户类型是"标准用户"。这意味着该账户没有管理员权限。然后单击"创建账户"。
(6) 因为要添加第二个用户名,故停留在"用户账户"对话框中。重复前述的步骤,并使用如下资料:
用户名:VMcGlynn
账户类型:计算机管理员
(7) 从Windows中注销,然后用刚才创建的第一个ID(JThakur)登录。
(8) 登录后,通过选择"开始"→"所有程序"→"Microsoft SQL Server 2008"→"SQL Server Management Studio",启动SSMS。你需要在对话框中输入安装的服务器名称。在"服务器名称"下拉列表中单击"浏览更多",然后选择"数据库引擎",再选择安装的服务器名称。在第2章中,将更详细地讲述这些内容。该对话框与图1-12显示的类似。

http://new.51cto.com/files/uploadimg/20090515/1130151.jpg
(点击查看大图)图1-12 尝试连接到SQL Server
 

1.6.2 身份验证模式(2)
http://book.51cto.com  2009-05-15 11:25  董明等译  人民邮电出版社  我要评论()
·         摘要:《SQL Server 2008基础教程》第1章SQL Server 2008概述和安装,本章介绍了SQL Server中的安全性,使读者能轻松地知晓自己想要以何种方式实现安全性,以及如何处理不同的用户名。本节为大家介绍身份验证模式。
·         标签:身份验证模式  SQL Server  SQL Server 2008基础教程
·          
限时报名参加“甲骨文全球大会·2010·北京”及“JavaOne和甲骨文开发者大会2010”
1.6.2 身份验证模式(2
(9) 查看出现的错误信息,错误信息应该与在图1-13中所看到的类似。JThakur作为一个登录名没有在SQL Server中明确定义,并且也不属于允许访问的组。当前唯一的组是在Windows的Administrators组中的一个用户。回想前面,JThakur是受限用户。

http://images.51cto.com/files/uploadimg/20090515/114028754.jpg
(点击查看大图)图1-13 登录到服务器失败
 

(10) 接下来测试刚才创建的另一个用户。关闭SQL Server,从Windows中注销,使用创建的第二个ID(VMcGlynn)登录。登录Windows以后,启动SSMS并连接到服务器上。这一次可以成功登录。
前面创建的两个用户名,一个具有受限的访问权限(JThakur),另一个具有管理权限(VMcGlynn)。无论怎样,这两个用户名都不存在于SQL Server中(毕竟没有在SQL Server中输入它们,它们似乎也没有因为某种魔力而出现)。那么,何以一个能成功登录而另一个会失败呢?
Windows安全模式确保了两个ID都是有效的。如果ID或密码不正确,根本就不能登录到Windows。因此,当试图连接到SQL Server时,唯一进行的检查是:用户是以操作系统的组成员身份访问SQL Server的,还是通过特定的登录用户账户访问的。正如图1-14所示,JThakur和VMcGlynn都不存在于SQL Server中。

http://images.51cto.com/files/uploadimg/20090515/114054592.jpg
图1-14 SQL Server的对象资源管理器
 

但是,在SQL Server的对象资源管理器中,可以看到一个名为BUILTIN\Administrators的Windows组。这意味着任何属于Administrators组的用户名都能够登录到SQL Server上。从而避免了将用户设置为他们自己计算机的管理员(如果可能的话)。
在生产环境中,如果允许用户成为管理员,则将该组从系统中移除或许是可取的。由于VMcGlynn是Administrators组的成员,因而该用户名也是BUILTIN\Administrators组的成员。
2. 混合模式
如果将SQL Server安装为混合模式,意味着既可以使用Windows身份验证(如前面所述),也可以使用SQL Server身份验证。
混合模式与Windows身份验证模式有何不同?首先,需要提供用户ID和密码进行连接,而不是由SQL Server取用登入账户的Windows ID或登入账户用户所属的组;其次,并不认定提供的ID都是有效的。当工作中用到ISP时,混合模式在许多情况下都是适宜的。为阐明这一观点,假设用户要在本地客户端机器上使用远程数据进行工作,那么远程的机器需要知道登录凭据,因而使用SQL Server身份验证将是最简单的方法。不过,请不要在这里弄混了。如果想要在ISP上处理数据,ISP可能提供了某种工具,或者,可以使用SSMS连接到数据上。接下来,你就能够随心所欲地进行工作了。如果网站的代码是以ASP.NET编写的,将使用Windows账户进行登录,因此,尽管可能锁定了SQL Server混合模式账户,也不会妨碍网站正常工作。
当在第4章谈论安全性时,将学习到如何向SQL Server中添加用户名(而不是添加Windows用户)。
关于安全性,还有一点需要讨论,这就是sa登录。
【责任编辑:云霞 TEL:(010)68476606】
 
1.7 小结
http://book.51cto.com  2009-05-15 11:25  董明等译  人民邮电出版社  我要评论()
·         摘要:《SQL Server 2008基础教程》第1章SQL Server 2008概述和安装,本章介绍了SQL Server中的安全性,使读者能轻松地知晓自己想要以何种方式实现安全性,以及如何处理不同的用户名。本节为本章的小结部分。
·         标签:SQL Server  SQL Server 2008基础教程
·          
限时报名参加“甲骨文全球大会·2010·北京”及“JavaOne和甲骨文开发者大会2010
1.7 小结
至此,读者应该了解了各种版本SQL Server之间的细微差别,同时还应该知道怎样检查计算机是否适合安装SQL Server。
在前面所讲述步骤的指引下,读者应该已经在计算机上成功安装了SQL Server 2008,甚至可能已经完成了两次安装,从而既安装了一个开发服务器又安装了一个测试服务器。这是个好主意,如果到目前为止只有一个安装的话,可以考虑安装另一个。无论是在大型公司工作,还是在人数极少的小公司工作,保持生产代码和开发代码的分离将极大降低复杂性(如果在开发时,需要为生产做准备的话)。
本章介绍了SQL Server中的安全性,使读者能轻松地知晓自己想要以何种方式实现安全性,以及如何处理不同的用户名。虽然目前可能还没有什么数据,但需要确保一旦有了数据,只有合适的人才能够查看到它们。
现在,已经做好了系统学习SQL Server 2008的准备。管理SQL Server最好的方法之一是使用SSMS,接下来将讨论这方面的话题。
【责任编辑:云霞 TEL:(010)68476606】
 
1.7 小结
http://book.51cto.com  2009-05-15 11:25  董明等译  人民邮电出版社  我要评论()
·         摘要:《SQL Server 2008基础教程》第1章SQL Server 2008概述和安装,本章介绍了SQL Server中的安全性,使读者能轻松地知晓自己想要以何种方式实现安全性,以及如何处理不同的用户名。本节为本章的小结部分。
·         标签:SQL Server  SQL Server 2008基础教程
·          
限时报名参加“甲骨文全球大会·2010·北京”及“JavaOne和甲骨文开发者大会2010
1.7 小结
至此,读者应该了解了各种版本SQL Server之间的细微差别,同时还应该知道怎样检查计算机是否适合安装SQL Server。
在前面所讲述步骤的指引下,读者应该已经在计算机上成功安装了SQL Server 2008,甚至可能已经完成了两次安装,从而既安装了一个开发服务器又安装了一个测试服务器。这是个好主意,如果到目前为止只有一个安装的话,可以考虑安装另一个。无论是在大型公司工作,还是在人数极少的小公司工作,保持生产代码和开发代码的分离将极大降低复杂性(如果在开发时,需要为生产做准备的话)。
本章介绍了SQL Server中的安全性,使读者能轻松地知晓自己想要以何种方式实现安全性,以及如何处理不同的用户名。虽然目前可能还没有什么数据,但需要确保一旦有了数据,只有合适的人才能够查看到它们。
现在,已经做好了系统学习SQL Server 2008的准备。管理SQL Server最好的方法之一是使用SSMS,接下来将讨论这方面的话题。


相关教程