安装SQL Server需要选择服务的登录帐户类型,那么为什么需要用户选择服务帐户类型呢,不同的服务帐户类型又有什么差别呢?下文将带您寻找答案。
一:为什么需要SQL Server服务帐户类型
SQL Server在操作系统中是作为进程来运行的,SQL Server中的每个服务代表一个进程或一组进程。每个进程需要有访问SQL Server相关文件(如.mdf、.ndf 和 .ldf 等文件)或注册表或者SQL Server安装目录的权限。这与当前登录到SQL Server服务器上的用户权限无关。无论是管理员帐号Sa,还是普通SQL Server用户,这些SQL Server用户的权限大小与操作系统中SQL Server进程权限无关。为了能让SQL Server在操作系统中正常的启动和运行,就需要指定SQL Server的服务帐户,用以登录Windows操作系统并获取需要访问文件的权限。所以服务帐户指的是Windows操作系统中的帐户。
二:不同的SQL Server服务帐户类型的含义。
理解了为什么需要指定服务帐户,那么我们再来看一下在SQL Server 2000以及SQL Server 2005中,不同服务帐户的作用。只有理解了不同服务帐户的作用,我们才知道在实际环境中该如何选择最适合的服务帐户。
1:SQL Server 2000服务帐户类型
SQL Server 2000中SQL Server服务帐户只有两种,如图一所示,分别是“本地系统帐户”和“域用户帐户”。两者之间的区别在SQL Server 2000联机帮助中说得很清楚:
本地系统帐户不要求密码,没有 Windows NT 4.0 和 Windows 2000 的网络访问权限,同时限制 SQL Server 安装与其它服务器交互。
域用户帐户使用 Windows 身份验证,即用于连接到操作系统的用户名和密码也用于连接到 SQL Server。一般情况下都使用域用户帐户,因为许多服务器之间的活动只能使用域用户帐户才能执行,例如:远程过程调用,复制,备份到网络驱动器以及SQL邮件相关功能。
也就是涉及到网络相关的操作,“本地系统帐户”就无法为力。我们从服务帐户的作用上来思考就比较容易理解原因所在。如上面为什么需要服务帐户上所说的一样,服务帐户指的是Windows操作系统中的帐户。我们知道,在Windows网络中两台计算机要通讯,被访问方需要访问方提供身份验证信息,因为本地系统帐户不属于Windows帐号中的 Everyone 组,因此,使用该帐户的服务只能通过空会话来访问网络资源。一般情况下,空会话会在最基本的安全设置中被禁用,这就是“本地系统帐户”无法使用使用网络功能的原因所在。“域用户帐户”就是通过帐号信息进行安全身份验证,只要提供的安全身份信息验证通过,网络访问就被允许。这里“域用户帐号”名字并不贴切,其实并不一定要求是AD域用户帐户,基于工作组模型的用户帐户一样可以适应于“域用户帐号”。
2:SQL Server 2005服务帐户类型
SQL Server 2005中SQL Server服务帐户类型分为“内置系统帐户”和“域用户帐户”,但“内置系统帐户”细分成三类“本地系统帐户”、“网络服务帐户”以及“本地服务帐户”。
在SQL Server 2005联机帮助中不同的服务帐户类型说明如下:
“本地系统”选项指定一个不需要密码的本地管理员级别的系统帐户,与SQL Server 2000中的本地系统帐户类似。
“网络服务帐户”是一个特殊的内置帐户,它与通过身份验证的用户帐户类似。网络服务帐户与 Users 组的成员具有相同级别的资源和对象访问权限。以网络服务帐户身份运行的服务将使用计算机帐户的凭据访问网络资源。
“本地服务帐户”是一个特殊的内置帐户,它与通过身份验证的用户帐户类似。本地服务帐户与 Users 组的成员具有相同级别的资源和对象访问权限。如果有个别服务或进程的安全受到威胁,则此有限访问权限有助于保护系统的安全。以本地服务帐户身份运行的服务将以一个没有凭据的空会话形式访问网络资源。
“域用户帐户”是一个使用 Windows 身份验证的域用户帐户,以设置并连接到 SQL Server。Microsoft 建议对 SQL Server 服务使用具有***权限的域用户帐户,因为 SQL Server 服务不需要管理员帐户特权。
建议在实际环境中,如果存在多台SQL Server服务器互相通信,请使用“域用户帐户”。如果个人测试环境,服务帐户类型按个人喜好。
【编辑推荐】