SQL Server 2008 R2 中 SQL Native Client 的不同版本

SQL Server 2008 R2 中 SQL Native Client 的不同版本

当我尝试从名为的服务器连接时出现此错误:应用服务器1到同一域中的另一台服务器科布尔,称为数据库服务器1

SQLSTATE[28000]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed for user 'KOBL\kobladmin'.

第一个奇怪的事情是 DatabaseServer1 中有 Sql Server 2008 R2 和 Sql Native Client 10.0,我不知道为什么当我尝试在浏览器中连接到 DatabaseServer 时上面的行中会出现 11.0 版本。

我在 AplicationServer1 上使用:

  • PHP 5.4
  • IIS 7

数据库服务器1:

  • SQL 服务器 2008 R2

我使用该代码来建立连接:

配置.php

<?php
define ("DB_USER","KOBL\kobladmin");
define ("DB_PASS","AdminKobl");
define ("DSN","sqlsrv:server=databasebserver1.kobl.com;database=kobl_system");
?>

连接.php

<?php
require 'config.php';

class DB_Connect {

private static $_instance;

//Connecting to database
public function &pdo_connect() {
    if(!self::$_instance) {
        try{
            self::$_instance = new PDO(DSN,DB_USER, DB_PASS);
            self::$_instance->setAttribute(PDO::ATTR_PERSISTENT, true);
            self::$_instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $ex) {
            die("PDO Connection error: ".$ex->getMessage()."<br/>");
        }
    }
    return self::$_instance;
}

private function __construct() {
}

private function __clone() {
}
}
?>

连接 Sql Server 的凭据与 Windows 身份验证相同。

笔记:域名、用户名和密码都是假的(我之所以这么说是因为有时会有人对我说“你不能放置数据库连接的真实数据”。

答案1

错误中出现 SQL Native Client 11,因为这是 ApplicationServer1 用于连接 DatabaseServer1 的客户端版本。应用服务器上必须安装 SQL 2012 客户端工具。

身份验证问题似乎是它KOBL\kobladmin没有访问您数据库的权限。请确保您 1) 在 SQL Server 中为该帐户创建了 Windows 登录名,然后 2) 在 kobl_system 数据库中授予该登录名适当的权限。

相关内容