SQL2005, 在连接数据库引擎时,用windows身份验证时可以正常连接上,但是用Sql身份验证就连接不上。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL2005, 在连接数据库引擎时,用windows身份验证时可以正常连接上,但是用Sql身份验证就连接不上。相关的知识,希望对你有一定的参考价值。

提示错误18456。安装时选择的是windows身份验证和SQL身份验证,之前都是好好的,突然就连接不上了~ 求求各位大神指点迷津

SQL Server 2005 之 Windows身份认证 无法登陆“网络追踪” 收藏
今天有个网友安装完SQL Server2005后,登陆是遇到了一个我问题:

Windows身份认证方式无法登陆,SQl Server 身份认证方方式可以登陆

我用sql server 的时间并不长,对于这个我问题我也没遇到过。起初跟他说很多我知道的方法去尝试,比如 ,安装后要是把机器名修改了,就会导致登陆界面上的“服务器名”失效,从而无法登陆;还有什么混合登陆模式,是否开启 sql server agent,然后仔细看了一下他发过来的截图

发现 “服务器名称 ”只有一个机器名,我记得我安装的时候应该是: 机器名\SQLServer2005(后面这个好像安装的时候可以自己设置的) ,然后我就以为他缺少后面那个东西,然后他说安装完成后就是那样,什么都没改。死马当活马医吧,我让他在后面添上了

\SQL Server2005、\SQL Server、\MSSQLSERVER ,结果还是不行。接着,就让他去查看“安全性”,发现以windows身份验证创建登陆名的时候会报错 ,而sql serser身份验证创建登陆名不会报错。

遇到没见过的错误当然是上网去搜索一下再说啊,查来查去,根据网上说的,我怀疑是和 本地系统帐户,域用户帐户有关,网上的资料如下:(有点多,呵呵)

1、装SQL Server2000,服务设置里的,使用本地系统帐户和使用域用户帐户 有何区别?

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项目,并删除它。然后进行安装。

2、安装SQL时,使用域用户账户中的域填写什么(填写其他无法继续下一步)急急急!!!!

此时出现"服务账户"对话框,在该对话框中共有4个选项,我们建议用户选择"对每个服务使用同一账户。自动启动SQL Server 服务"和"使用本地系统账户"这两个选项,选好以后点击下一步,继续安装;
进入"身份验证模式"窗口,此时请选择第二项"混合模式"只有选择混合模式后SQL Server 数据库的超级用户才是"sa";在此窗口可输入超级用户的密码,也可选择空密码(建议:不要使用空密码)。选择下一步后继续安装;
这时安装程序将从光盘向您的机器安装SQL 2000的部件,这需要一段时间。当安装完成后,出现"安装完成"对话框。单击"完成"按钮,完成SQL 2000的安装。

3、SQL2000 1069错误(由于登录失 败而无法启动服务)解决办法?

原因很简单,安装SQL Server时是使用默认登录用户来作为启动SQL Server服务的账号(对于自己使用的单机,通常就是administrator了),当该用户更改了用户名(如有人喜欢把administrator 改成admin)或更改了其口令时,再次启动服务器,就出现"同于登录失败而无法启动服务"的错误了
知道了原因,解决方法也就很显然了
1、把用户口令改回原来的,再启动服务
2、使用控制面版服务管理器,找到 MSSQLSERVER服务,更改启动账号信息,改成变更后的,再启动服务
3、也是推荐使用的方法,创建一个新用户,专门用于启动SQL Server服务,安装SQL Server时就使用该用户来启动SQL Server,这样就可以避免用于频繁更改administrator口令而带来的1069错误了。如果已经安装好SQL Server,也可以在控制面版服务管理器下更改MSSQLSERVER服务的服务账号信息,换成SQL服务专用的用户。
首先介绍网络上常用的两种解决方法:

   1.我的电脑--控制面板--管理工具--服务--右键 MSSQLSERVER--属性--登陆--登陆身份--选择"本地系统帐户"
 或:
  2.我的电脑--控制面板--管理工具--服务--右键 MSSQLSERVER--属性--登陆--登陆身份--选择"此帐户"--密码和确认密码中输入你修改后的administrator密码.

  两者的区别:
  选择第一种方式,以后修改了administrator密码,不用再调整(但要求登陆操作系统的是系统管理员)
  选择第二种方式,以后修改了administrator密码,还要再重复做上面的操作.
  下面是我遇到的一种情况:
  今天上午同事又告诉我他的SQL不能登陆自己的"企业管理器"了,报出的错误就是"1069 错误,由于登录失败而无法启动服务",上网查到了以上两种方案,但是当我看到了服务的窗口又发现了一个可能引起此问题的地方,我们先找到 MSSQLSERVER服务,然后查看它的属性,发现是使用域帐户在启动服务时进行验证,于是便询问是否修改过登陆域的密码,得到答案是修改过,因为域中作了设置,一定时期后要求用户修改密码,而且不能与以前密码相同(空密码除外,这个我做过实验^_^)。于是将这里的密码重新进行设置,再重新启动服务成功,SQL也可登陆成功。

4、[SQL Server 2000]发生错误1069:由于登录失败而无法启动服务 (这个和上面的差不多)

如何修改 SQL Server 2000身份验证模式和系统 管理 员Sa的登录密码

1、如何修改SQL Server 2000身份验证模式?
  分析:由于千方百剂软件,在 数据库 安全方面采用了最安全的方式“混合模式”,它主要应用于网络主要是Novell网络或者对等网,使用SPX/IP协议和SQL Server验证模式。

  优点如下:
  创建了Windows NT/2000之上的另外一个安全层次。
  支持更大范围的用户,例如非Windows NT客户、Novell网络等。
  一个应用程序可以使用单个的SQL Server登录和口令。

  下面以操作系统Windows 2000上的SQL Server 2000为例,对误将身份验证模式选择为“windows身份验证模式”的数据库进行修改,操作步骤为:
  1. 打开企业管理器,依次展开服务器组,用右键单击软件使用的服务器。
  2. 在弹出的快捷菜单,执行“属性”命令,出现“SQL Server属性”对话框。如图3所示。单击“安全性”标签,在“安全性”选项框中,将“仅Windows”改为“SQL Server和Windows”身份验证。
  3. 设置完成后,单击“确定”按钮,系统提示重新启动服务器。
  4. 单击“是”按钮,完成对身份验证模式的修改。
  说明:在 Windows XP操作系统与Windows 2000操作系统下修改SQL Server 2000身份验证模式相同,但在Windows 98操作系统下,却不能通过以上方法对身份验证模式进行修改。因为在Windows 98操作系统下,安装SQL Server 2000时,系统只支持“混合模式”身份验证模式。

2、如何修改SQL Server 2000系统管理员Sa的登录密码?

  分析:SQL Server 2000系统管理员Sa的登录密码,一般在安装SQL Server 2000时就已经设置。在数据库管理系统中,用检查口令等手段来检查用户身份,合法的用户才能进入数据库系统。千方百剂系列需要通过验证Sa登录密码才能 创建、删除账套,这样Sa的登录密码在此就显得尤为重要。

  操作步骤如下:
  1. 打开企业管理器,依次展开服务器组,然后展开服务器。
  2. 打开“安全性”文件夹,单击“登录”,然后用右键单击“Sa”,执行“属性”命令。
  3. 弹出“SQL Server登录属性”对话框,如图4所示。在“SQL Server身份验证”密码栏,输入最新密码。
  4. 单击“确定”按钮,弹出“确认密码”对话框,再输一遍登录密码。
  5. 单击“确定”按钮,完成对Sa登录密码的修改。

3、发生错误1069:由于登录失败而无法启动服务

错误1069是一个Windows NT/2000的系统错误。错误1069表明服务不能被启动(当启动服务时返回“登录失败”错误)。例如,当启动MSSQLServer服务时,得到如下 错误提示:

发生错误1069:由于登录失败而无法启动服务
此时正在MSSQLServer服务上执行该服务操作

如果服务被一个没有“登录服务”权限的帐户所启动时会发生1069错误。解决该问题的方法是给予该帐户以“登录服 务”权限。
具体到MSSQLServer的问题,如果在安装在Windows XP上安装SQL Server 2000开发版,并选择了默认设置(仅Windows的身份验证方式,默认实例,用Windows的Administrator用户进行的安装等),一般 会发生上述问题。解决的方法会有很多种,但最简单的方法是:
依次打开Windows控制面版->管理工具->服务->MSSQLSERVER->属性->登录,将登录身份改为本地系 统帐户

通过以上资料,初步认为是因为设置了 “使用域用户帐户 ”,于是就去查看了 控制面板--管理工具--服务--右键 MSSQLSERVER--属性--登陆--登陆身份--选择"本地系统帐户" ,哎!发现他的电脑本来就是选择的“ 本地系统帐户 ”

这下我是真的无语了。。。。无奈啊!

他说是不是因为win7系统的缘故,也许安装的时候和 xp 不一样,我也这么想过,但是我觉得应该没多大差别才对。没办法,继续上网查!

5、win7安装sql server 2005的方法详解:

本文将为大家介绍Windows 7下如何安装SQL Server 2005,相信通过本文,能让大家了解安装的过程。

  一、配置IIS

  到控制面板,打开IIS Features,点左边的加号,打开详细信息,我们勾上以下组件:

  1: Web Managerment Tools\IIS 6 Management Compatibility\IIS6 WMI Compatibility

  2: Web Managerment Tools\IIS 6 Management Compatibility\IIS6 Metabase and IIS 6 Configuration Compatibility

  3: World Wide Web Services\Application Development Features\Asp.net

  4: World Wide Web Services\Common Http Features\Http Redirection

  5: World Wide Web Services\Security\Windows Authentication

  二、安装标准版SQL Server 2005

  按照提示安装即可。

  三、安装SQL Server 2005 SP3

  最后一步设置系统帐号权限,需要先到任务管理器中关闭 sqlserver 进程,然后到打开dos窗口之前的一步,又需要手动启动 sqlserver服务。

  四、启用 SQL Server Browser 服务

  单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。

  在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。

  在“服务和连接的外围应用配置器”页上,单击“SQL Server Browser”,在“启动类型”中单击“自动”选项,然后单击“应用”。

  打开 Windows 防火墙,请单击“开始”,再单击“运行”,键入 firewall.cpl,然后单击“确定”。

  五、在 Windows 防火墙中为 SQL Server 2005 创建例外

  若要在 Windows 防火墙中为 SQL Server 2005 创建例外,请执行以下步骤:

  六、在 Windows 防火墙中为 SQL Server Browser 服务创建例外

  若要在 Windows 防火墙中为 SQL Server Browser 服务创建例外,请执行以下步骤:

  1.在 Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。

  2.在“添加程序”窗口中,单击“浏览”。

  3.单击 C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe 可执行程序,单击“打开”,然后单击“确定”。

  七、配置SQLServer2005 远程连接

  第一步 :SQL Server Configuration Manager -> SQL Server 2005 Services 将 SQL Server Browser 设置为 running,

  如果没有Enable的话,右键Properties -> Service -> StartMode = Auotomatic

  注意,同时必须打开SQL Server Browser 服务

  

  第二步: SQL Server 2005 Network Configuration -> Protocols for SQLXPRESS 下同时使用TCP/IP和named pipes

  

  第三步:SQL Native Client Configuration 下同时使用TCP/IP和named pipes

  

  2、登陆改为混合模式:

  打开manage管理器->以windows方式连接并进入数据库->右键点击你的数据服务器->属性 ->security>选中Sql server and windows Authentication

  

  3、新建SQL server方式的用户名和密码:

  manage管理器 -> security -> 右键点击logins->new login...-> 选中sql server authentication ->设置login name 和password(confirm password)以及 默认的数据库

  最好去掉“enforce password expiration”前的小钩,否则每次登陆都要修改密码。

  注意 : 一定要在User Mapping 页面中选择该用户对应的数据库(即使前面已经选择了默认数据库),否则还是会登录不上

如果需要修改数据库,必须分配 db_Owner 角色
  

  4、重新启动服务器

  虽然网上好多文章都说只需要重新启动SQL服务就可以,但是经过验证,必须重新启动机器才行

  In order to get things to work. You might need to completely reboot the server machine after making the changes. There have been reports (thanks P.C.) that starting and stopping the SQL Server and Browser software is not enough.

  5、使用SQL Server Configuration Manager 测试

  注意 : Server Name 一定要 Serever\SQLEXPRESS

  

  同时还要在 Options -> Network protocol 中选择TCP/IP才能顺利登录

  

  在 Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。

  在“添加程序”窗口中,单击“浏览”。

  单击 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe 可执行程序,单击“打开”,然后单击“确定”。

  注意:上述路径可能会根据 SQL Server 2005 的安装位置而不同。MSSQL.1 这个占位符代表的是您在前面过程的步骤 3 中获得的实例 ID。

  对于每个需要为其创建例外的 SQL Server 2005 实例,重复步骤 1 到步骤 3。

6、Windows7安装SQL Server 2005 全攻略

费了整整两个晚上加一天时间,把SQL Server 2005 不知安装、卸载过多少次,今天终于完美安装上去了,记录一下安装过程,以备以后查看,首先说一下本机配置。

本人操作系统是Windows7简体中文旗舰版,安装的是SQL.Server.2005.开发人员版、企业版、标准版32、64位DVD合集,这个版的镜像文件网上很多。用虚拟光驱载入镜像,照例是检查组建支持,刚开始安装的时候,就检查iis和com+组件警告,我一开始只勾选了asp.net这个选项,结果还是警告,后来发现全选就没事了。在com+组件上浪费的时间最多,开始老是无法启动这个分布式事务支持组件,在网上了查了无数资料还是无法启动,最终发现是之前安装的操作系统的版本问题,估计是被修改过的版本,然后不想再发生麻烦,就重装了一下系统。

接下来sql顺利安装通过,中间会有多次警告"版本不受支持",不用管它,继续安装。有一点也很搞笑,估计是安装包的bug,在安装过程中虽然选择了"混合模式验证",安装完成过后用windows系统帐户却死活登不上去,sa账户可以正常登录。安装完成后需要下载SQL Server 2005 sp3的升级包,一路默认下去,有两点注意:第一个需要先把sql服务手动停掉,升级包才能安装;第二点,也是最关键的一点,当一切安装完成,出现一个 "完成后启动Windws Vista 配置工具的时候",不要动,要先启动sql服务后,再点下一步,然后一个dos窗口一闪而过,出现一个配置工具,把左侧的系统默认账户添加到右侧,下一步,现在就可以用系统帐户正常登录sql了。

之前因为安装升级包都是一路"下一步",但是因为停掉的sql服务没有启动,导致最后一步添加系统帐户失败,好像是什么"错误18456",我在这个上浪费的时间最多,后来仔细回忆一下安装步骤,猛然想到服务未启动怎么能添加进去账户呢,今天安装的时候特意把sql服务启动之后再添加果然成功了。

用系统帐户登录进去看了下,多了一个"计算机名/默认账户名"的用户,这也为我们提供了一个思路:如果安装过程中忘记启动sql服务,用sa帐户登录,然后安全性--右键登录名--新建登录帐户--搜索--高级--立即查找,在下面找到自己系统的默认登录帐户(必须是管理员组的),确定。然后选择 "Windows身份验证",服务器脚色选择public和sysadmin这两个,状态选"授权"和"启用"这两个,至此应该就可以了。之所以说应该就可以了,因为我没试过,我看到那个"计算机名/默认账户名"是这样配置的。

还有些人可能安装的过程中数据库服务安装成功了,但是企业管理器没有安装上去,没关系,到网上下载一个企业管理器,比如 SQLServer2005_SSMSEE.msi,放到人一个盘,最好是根目录,比如我的放到G:盘,直接运行这个安装程序是不行,会提示安装失败,这时新建一个文本文件,内容是msiexec /i G:\SQLServer2005_SSMSEE.msi ,注意路径和你的文件名要对应一致。然后把文本文件后缀名改为cmd,右键"以管理员身份运行"这个文件,这样就安装成功了,最好先安装这个管理器,再安装sp3升级包。
参考技术A
既然windows身份验证能够通过,就以该身份先登录进管理器,然后在服务器属性中有一项服务器身份验证,设为sql server和windows身份验证模式。下一步,在安全--登录中设置sa用户的属性,在状态一栏中有“登录”一项,默认是禁用,改为启用。修改完成后,重启企业管理器以sa用户名进行登录,问题依旧。想了半天,原来在设置完“sql server和windows身份验证模式”后,要求重启服务。当时设置完成后只是重新开启了企业管理器,其服务并没重新启动。
可以参考下面的参考资料,希望对你有帮助。

SQL Server2008连接不到本地数据库引擎

刚刚安装SQL Server2008现在想连接到本地数据库引擎
1.连接不到数据库引擎,连接错误18456;

2.可以连接Integration Services;
3.SQL Server服务已经打开;

4.使用windows身份验证,但是用户名不知道为什么改变了。装机和安装MSSQL Server2008的时候用户名是“han”,现在变为了“Administrator”。这样会受到影响吗?

win7系统用windows模式登录数据库的ssms的话,需要右键点击ssms(manager studio)
选择以管理员身份运行,方可登录追问

右键->以管理员身份运行 也无法登录,错误提示跟刚刚一样

追答

无语。。怎么会呢~

参考技术A 服务器名称应该是“(local)\MSSQLSERVER” 吧追问

使用这个名称还是出错了,错误:87

用户名不对,还有其他方法吗?

追答

用sql验证方式,sa账号可以登吗?

本回答被提问者采纳
参考技术B 有可能是你用户身份验证不对,需要使用han用户名登陆。追问

我是用han登录的,并且验证方式为Windows身份验证

参考技术C 只能告诉你 服务器名称 有误。追问

连接本地的数据库引擎,那正确的名称应该填什么啊

以上是关于SQL2005, 在连接数据库引擎时,用windows身份验证时可以正常连接上,但是用Sql身份验证就连接不上。的主要内容,如果未能解决你的问题,请参考以下文章

如何部署SQLServer2005

SQL 2005 数据库设置方法

SQL 2005 用IP连接时 提示发生内部连接致命错误 这是为啥?我重装了SQL server2005后还是这样 求解答

我在安装SQL2008 的时候安装好了,可是出现连接不到数据库引擎,连接不成功啊!出现了下面的情况,

有关SQL Server 数据库引擎

sql server 2005实现树形菜单显示的数据库表怎么设计?