【问题标题】:mssql windows credential on pdo over iis-php通过 iis-php 在 pdo 上的 mssql windows 凭据
【发布时间】:2016-09-08 08:59:15
【问题描述】:

我需要通过在 IIS/PHP 上运行的 PDO 获得的 Windows 凭据登录 MsSQL。我无法达到我刚刚获得的这个:

[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'myuser'

为此,我使用了一个伪造的 MsSQL 帐户,他的凭据隐藏在 PHP 代码中。顺便说一句,我可以登录我的 Active Directory 服务器,之后我还需要登录我公司网络中的 MsSQL 服务器。

这是我的 PHP 类中连接的构造函数:

public function __construct($host, $user, $pass, $dbname) {
 $this->dbh = new PDO("sqlsrv:Server=".$host.
 ";Database=".$dbname.
 ";TransactionIsolation=".PDO::SQLSRV_TXN_READ_UNCOMMITTED,
 $user,$pass);
}

我从 POST 数据包获取用户并传递,我不能使用单点登录,因为这是一个带有 json 答案的中间件,也适用于没有活动 Windows 登录实例的智能手机设备。

【问题讨论】:

    标签: sql-server windows iis pdo sqlsrv


    【解决方案1】:

    很遗憾,在当前版本中是不可能的。当您传递用户名和密码时,sqlsrv 扩展将始终使用 SQL Server 身份验证而不是 Windows 身份验证。请仔细查看以下链接。

    https://msdn.microsoft.com/en-us/library/ff628159(v=sql.105).aspx

    【讨论】:

    • 我以为用官方工具是不可能的,我也在寻找解决方法
    • 我真的不明白你的用例。您的用户应该知道数据库登录?!您想拥有多少个帐户? AD 中的每个用户都没有自动访问 sql server 的权限,您仍然需要将帐户凭据添加到数据库并为其设置权限。您可以将 IIS 配置为在您的域凭据之后运行,它也应该由 sqlsrv 扩展使用。这就是你要找的吗?
    • 我的用户只知道他们的 AD 帐户,应用程序验证他们的凭据是否有效,然后访问数据库 MsSQL。连接并记录后,第二个查询使用序列号验证它们的启用。
    • 我的麻烦是在不使用本地帐户的情况下使用 AD 帐户访问数据库 MsSQL。现在只是为了工作,我使用的是本地帐户,但我无法保留它。
    • 为了更好地阐明这是这个中间件的代码:nopaste.me/view/3bf4978c
    猜你喜欢
    • 2014-12-02
    • 2013-12-08
    • 2015-11-19
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    相关资源
    最近更新 更多