具有集成安全 PHP 和 MS SQL Server 的 ODBC 连接

Posted

技术标签:

【中文标题】具有集成安全 PHP 和 MS SQL Server 的 ODBC 连接【英文标题】:ODBC Connection with integrated security PHP and MS SQL Server 【发布时间】:2013-04-02 16:28:10 【问题描述】:

我需要有关 php 中 ODBC 连接字符串的指导帮助,我用它来连接到 MS SQL Server。

    <?php
$server = 'UKEMO03'; 
    $database = 'mtpFetch';//the database to connect to
    $user = 'shoabg';// the user has PERMISSIONS AT THE DATABASE
    $pass = 'Shsx12x';//and here the user's password
    $dsn = "Driver=SQL Server;Server=$server;Database=$database;";
    $connect = odbc_connect($dsn, $user, $pass); 
    ?>

以上代码有效,但我要求不指定用户名和密码,并将连接字符串与集成安全性结合使用。我在互联网上找不到任何东西,也无法更改连接字符串方法,因为我已经完成了大部分工作,并且通过调整另一种连接方法需要对代码进行大量更改,理论上它不是我的选择。

有没有一种方法可以创建集成安全连接,以使用 ODBC 在 PHP 中连接 MS SQL Server

请帮助我不知道该怎么办

【问题讨论】:

集成安全意味着 php 连接到任何帐户 php 和/或它所嵌入的网络服务器正在运行的凭据。 我一般在Dot Net中创建 server=1.1.1.0;Integrated Security=SSPI; 【参考方案1】:

这会将您连接到 ODBC 主数据库(目录)。 我没有成功连接到另一个数据库。 ODBC SDN的配置中有default database的选项,但是没有效果 (“将默认数据库更改为”)。

$this->dbHandle = odbc_connect("Driver=SQL Server;Server=localhost;Integrated Security=SSPI", '', '');

如果您使用 PHP ini,请确保您使用:

mssql.secure_connection=On

在数据库服务器上,确保您的登录用户名关联了 Windows 身份验证

【讨论】:

以上是关于具有集成安全 PHP 和 MS SQL Server 的 ODBC 连接的主要内容,如果未能解决你的问题,请参考以下文章

具有 SQL Server 集成安全性的 Flyway

如何指定具有集成安全性的用户 ID/密码?

具有集成安全性的实体框架 SQL 连接问题

php连接sql serve后如何执行sql语句

什么是SQL+Serve+2014的一种实用工具?

Localhost、Php artisan serve 和 homestead Pro/Cons