0

这个问题可能更适合Serverfault,但我不确定实际问题出在哪里,所以我会在这里开始提问。

我刚刚安装了带有 SQL Server 2008 R2 SP1 的 Windows Server 2012。我们通常通过 php 脚本测试连接等来监控我们的 SQL Server,但我无法连接到这个特定的服务器。错误日志显示“原因:找不到与提供的名称匹配的登录名”,但是当将完全相同的用户名/密码复制/粘贴到本地服务器或远程服务器上的 Management Studio 时,一切正常。我想是因为2012的操作系统,但不完全确定,希望有人能给我一些指点。

运行 SQL 的服务器和执行监控的服务器之间没有防火墙,并且允许远程连接。测试的用户都有权连接到数据库引擎,启用登录并禁用任何密码策略。

PHP 版本是 5.3.3,我使用的是 freeTDS 和协议版本 8.0。最后,这是 php.ini 中与 mssql 相关的所有配置选项

mssql mssql.allow_persistent => On 
mssql.batchsize => 0 
mssql.charset => no value 
mssql.compatability_mode => Off 
mssql.connect_timeout => 5 
mssql.datetimeconvert => On  
mssql.max_links => Unlimited  
mssql.max_persistent => Unlimited 
mssql.max_procs => Unlimited 
mssql.min_error_severity => 10 
mssql.min_message_severity
mssql.secure_connection => Off 
mssql.textlimit => Server default 
mssql.textsize => Server default
mssql.timeout => 60
4

1 回答 1

0

看来我对 TCP 连接权限有误,这不是特定于编程/php 的错误。如果将来有人偶然发现此问题并出现相同错误,则以下博客文章将描述该问题。

http://dbccpage.wordpress.com/2011/11/19/how-to-solve-error-18456-severity-14-state-12-login-based-server-access-validation-failed-with-an-基础设施错误检查以前的错误/

我不知道为什么这个问题只出现在我们的 Windows Server 2012 机器上,但对我们来说似乎就是这样。

于 2013-05-20T13:05:41.553 回答