SQLServer2000使用本地系统帐户和使用域用户帐户两者区别

        在安装SQLSERVER2000时,会有这样的一个选择画面,这是设置启动sqlserver服务的登录身份。SQLSERVER2000装好后,会产生一个MSSQLSERVER服务,在这里设置的就是启动它这个服务的登录身份。
 
        那么我们究竟要选择哪一个呢?两者各代表什么意思呢?下文我们就来研究一下。

        我们先看熟悉一下两个相关概念。

什么是凭据?
        Windows凭据(Credential)其实就是指用户帐户和口令,我们调用一些API,如WTSOpenServer,QueryServiceStatus,NetUserEnum等等涉及到RPC的,只要当前用户存储有目标远程机的权限合适的凭据,则这些API就不会因产生ERROR_ACCESS_DENIED而执行失败。
        不好理解么?那么我们来看一下访问别的计算机的情形,加深理解。访问远程计算机必然用到rpc。
 
        上图就是我们连接到IP为172.16.100.1计算时的情形,这个时候是需要我们输入用户帐户与密码的。这里的用户帐户与密码就是所谓的凭据。
 
        当我们输入用户帐户与密码后,并把“记住我的密码”打上勾,点确定。那么我们的凭据(即这个用户帐户与密码)被存储了,以后再访问的时候就无须再输入。

安全上下文
        安全上下文(Security context)是指在一个系统中有效的安全属性或规则。

       下面我们来看SQLSERVER2000服务的两种登录方式:本地系统帐户和域用户帐户

本地系统帐户:

        该帐户是对本地计算机具有管理员权限的预定义本地帐户。在本地系统帐户的安全上下文中运行的服务向远程服务器提供本地计算机的凭据。在本地系统帐户的安全上下文中运行的服务不能建立身份验证会话,因为本地系统帐户不属于域中的 Everyone 组。因此,使用该帐户的服务只能通过空会话(没有凭据)来访问网络资源。(这个访问指的是为了完成某项任务服务的自动访问,和我们的连接SQL服务器不一概念)

域用户帐户:

使用专用域用户帐户作为登录帐户

        域用户帐户是指在 Active Directory 目录服务中创建的用户帐户。该帐户是域中 Authenticated Users 组的成员。在域用户帐户的安全上下文中运行的服务向远程服务器提供域用户帐户的 Kerberos 票证。在域用户帐户的安全上下文中运行的服务可以访问经过身份验证的用户或特定用户帐户有权访问的远程服务器上的资源。

使用本地用户帐户作为登录帐户

        本地用户帐户是指在本地计算机上创建的Windows用户帐户。在本地用户帐户的安全上下文中运行的服务向远程服务器提供本地用户帐户的访问标记。如果在远程服务器上配置了匹配用户名和密码,则使用本地用户帐户的服务将能够访问同名帐户有权访问的远程服务器上的资源。虽然此方案行之有效,但是维护这些单独的帐户并保持帐户密码同步将增加管理开销。
         如果你没有加入域,但又需要连接到网络资源,那么可以使用本地用户帐户作为登录帐户。
         由此可见使用域用户帐户可以使用凭据来访问远程计算机,并使用相应的资源。

        例如SQLSERVER服务,当它进行以下操作时,是需要访问远程计算机的。
        • 远程过程调用。
        • 复制。
        • 备份到网络驱动器。
        • 涉及远程数据源的异类联接。
        • SQL Server 代理邮件功能和 SQL 邮件。

         在这几种情况下是无法不使用凭证去访问远程计算机,并使用其资源的。所以必须得把登录类型改为“域用户帐户”,并输入在远程计算机上配置好的,存在的“用户名”和“密码”。

如果只是装在本机进行开发或学习,完全没必要使用域用户帐户登录模式,因为有时候因为切换不同用户而导致服务不能启动。

修改SQLSERVER服务的登录类型

        服务的登录类型是随时可以改变的。可以需要的时候通过以下两种方法修改SQLSERVER服务的登录类型。

1. 通过企业管理器修改

   右击SQLSERVER服务器---“属性”---“安全性”下的“启动服务帐户”
 

2.通过服务修改

 “控制面板”---“服务”----“MSSQLSERVER”,右击---“属性”---“登录”
 

 装SQLSERVER时遇到的一些问题
1.在安装时出现提示"command line option syntax error!type command /? for help"
    这是因为你可能把SQLSERVER的安装文件放在了中文目录下,可以你它改为英文目录即可。每一级目录都不能含有中文。
2.出现提示"以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重启计算机"
  打开注册表编辑器(或在命令行输入:regedit),在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations项目,并删除它。然后进行安装。

 

posted on 2008-05-11 18:45  子非魚  阅读(8297)  评论(4编辑  收藏  举报