www.91084.com

GVKun编程网logo

如何使用Windows身份验证通过sqlalchemy连接到SQL Server?

12

这篇文章主要围绕如何使用Windows身份验证通过sqlalchemy连接到SQLServer?展开,旨在为您提供一份详细的参考资料。我们将全面介绍如何使用Windows身份验证通过sqlalchem

这篇文章主要围绕如何使用Windows身份验证通过sqlalchemy连接到SQL Server?展开,旨在为您提供一份详细的参考资料。我们将全面介绍如何使用Windows身份验证通过sqlalchemy连接到SQL Server?,同时也会为您带来asp.net – IIS7中的SQL Server和Windows身份验证、asp.net通过kerberos集成windows身份验证到sql server、C#连接sqlserver windows 和 sqlserver 身份验证的两种连接字符串、php-使用Windows身份验证通过sqlsrv_connect连接到SQL Server的实用方法。

本文目录一览:

如何使用Windows身份验证通过sqlalchemy连接到SQL Server?

如何使用Windows身份验证通过sqlalchemy连接到SQL Server?

sqlalchemy是Python的数据库连接模块,默认情况下使用SQL身份验证(数据库定义的用户帐户)。如果要使用Windows(域或本地)凭据对SQL
Server进行身份验证,则必须更改连接字符串。

默认情况下,按照sqlalchemy的定义,连接到SQL Server的连接字符串如下:

sqlalchemy.create_engine(''mssql://*username*:*password*@*server_name*/*database_name*'')

如果使用您的Windows凭据使用,则会引发类似于以下的错误:

sqlalchemy.exc.DBAPIError: (Error) (''28000'', "[28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user ''***S\\username''. (18456) (SQLDriverConnect); [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user ''***S\\username''. (18456)") None None

在此错误消息中,代码18456标识SQL Server本身抛出的错误消息。此错误表示凭据不正确。

答案1

小编典典

为了将Windows身份验证与sqlalchemy和mssql一起使用,需要以下连接字符串:

ODBC驱动程序:

engine = sqlalchemy.create_engine(''mssql://*server_name*/*database_name*?trusted_connection=yes'')

SQL Express实例:

engine = sqlalchemy.create_engine(''mssql://*server_name*\\SQLEXPRESS/*database_name*?trusted_connection=yes'')

asp.net – IIS7中的SQL Server和Windows身份验证

asp.net – IIS7中的SQL Server和Windows身份验证

我正在尝试使用sql Server和 Windows身份验证在Vista(IIS7)上运行ASP.NET网站.无论我做什么,当我连接到数据库时,我得到例外:
    sqlException was unhandled
    Login Failed for user 'MyDomain\MachineName$'.

我应用的设置似乎并不重要,我无法让IIS7通过我的Windows登录凭据.

额外细节:

> sql Server和本地计算机都在ActiveDirectory上
> Vista Enterprise,IIS7
> sql Server 2005
>禁用匿名身份验证,启用Windows身份验证
>假冒开/关没有区别
>所有身份(NetworkService,LocalSystem等)给出相同的结果
>经典和集成管道提供相同的结果

救命!

解决方法

正确配置后,模拟开启/关​​闭会产生重大影响.您想要的是“约束委派”,您需要为它配置IIS和ASP:

> How To: Use Protocol Transition and Constrained Delegation in ASP.NET 2.0
> Configure ASP.NET Impersonation Authentication (IIS 7)
> Configuring Servers for Delegation

asp.net通过kerberos集成windows身份验证到sql server

asp.net通过kerberos集成windows身份验证到sql server

请有人请给出一个简单,直接的方法来启用ASP.NET> Kerberos> sql Server? @H_301_5@

@H_301_5@我们有clientMachine> webServer> DATABASESERVER.客户端坚持认为该站点必须提取Windows登录而不提示,因此需要Kerberos和集成身份验证.它还必须模拟用户进入数据库服务器,从而产生双跳.

@H_301_5@我们的域名是Windows 2003域名,据我所知,这意味着Kerberos已启用.在加入域的计算机上,当登录时,kerbtray告诉我我有一大堆门票,所以它显然正在工作.

@H_301_5@AD中的Web和数据库服务器计算机帐户都“受信任以进行委派”.
必须访问系统的AD用户帐户都“被委托信任”.
当它全部工作时,我会添加更多用户,现在两个就是它.

@H_301_5@sql Server实例在数据库服务器上的LocalSystem下运行,尽管我可以在网上告诉它,但这意味着它根本不需要搞乱这些SPN的东西.

@H_301_5@然而,当我尝试使用任一用户登录时,我得到了

@H_301_5@

Login Failed for user 'NT AUTHORITY\ANONYMOUS logoN'.
@H_301_5@表示双跳失败.在数据库服务器上的应用程序日志中,有一些来自“MSsql”的条目说同样的事情,这进一步推动了这一点.

@H_301_5@我真的不敢相信这有多难……我的意思是,IIS,sql和Windows都是微软,他们不能说得更好吗???

@H_301_5@总而言之,我有
>一个kerberos域名,
> db和Web服务器都受信任以进行委派
>用户信任委派
> AD组中的用户
> AD组作为sql登录(和db中的用户)
> IIS匿名关闭,集成打开,基本和摘要关闭
> IE启用集成功能

解决方法

下载 Troubleshooting Kerberos Delegation.它是一个救生员.
在第17页,您将找到Active Directory清单.按照核对表一步一步.
在第30页,您将找到客户端应用程序清单.逐步验证核对表.
第35页是中间层清单.逐步验证它.
第48页是后端核对表.逐步验证它. @H_301_5@

@H_301_5@如果仍有问题,该文档包含故障排除工具的详细列表(kerbtray,klist,ldifde等),详细说明如何在系统事件日志中启用日志记录和审计身份验证错误,详细解释所有错误代码.来自身份验证审核的事件日志条目,依此类推.

@H_301_5@一旦弄清楚出了什么问题,修复起来会容易得多.

C#连接sqlserver windows 和 sqlserver 身份验证的两种连接字符串

C#连接sqlserver windows 和 sqlserver 身份验证的两种连接字符串

//sql server 身份验证 连接字符串 private string ConnstrSqlServer = "server=服务器名称;uid=登录名称;pwd=登录密码;database=数据库名称";

//windows 身份验证连接字符串 private string ConnstrWindows = "server=服务器名称;database=数据库名称;Trusted_Connection=SSPI";

  

// 在 C# 代码中用 SqlClient 的方式访问 SQL Server 2008 数据库    
   
// .NET Framework Data Provider for SQL Server 标准写法    
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;    
   
// .NET Framework Data Provider for SQL Server 另一种标准写法    
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;    
   
// .NET Framework Data Provider for SQL Server 信任连接写法    
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;    
   
// .NET Framework Data Provider for SQL Server 信任连接另一种写法    
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

php-使用Windows身份验证通过sqlsrv_connect连接到SQL Server

php-使用Windows身份验证通过sqlsrv_connect连接到SQL Server

使用Microsoft的PHP驱动程序连接到sql Server的official guide看起来非常简单,因此我在很大程度上复制了文本:

$server = "serverlocation\prod";
$database = array( "Database"=>"temp");
$conn = sqlsrv_connect($server, $database);

echo "<pre>";

if ( $conn ) {
  echo "Connection established";
} else { 
  echo "Connection Could not be established.<br />";
  die( print_r( sqlsrv_errors(), true));
}

运行代码时,出现以下错误:

Connection Could not be established.
Array
(
    [0] => Array
        (
            [0] => 28000
            [sqlSTATE] => 28000
            [1] => 18456
            [code] => 18456
            [2] => [Microsoft][ODBC Driver 11 for sql Server][sql Server]Login Failed for user '*****DOMAIN\MY_MACHINE_NAME*****'.
            [message] => [Microsoft][ODBC Driver 11 for sql Server][sql Server]Login Failed for user '*****DOMAIN\MY_MACHINE_NAME*****'.
        )

我在错误消息(是Windows计算机)中列出的计算机名称上运行此代码,但是列出的计算机名称不是我登录时所使用的用户帐户.拥有该数据库的权限(并且我可以使用MS sql Server Managment Studio很好地连接到它…),但是当我尝试使用此脚本进行连接时,它将显示我的计算机名而不是我的用户帐户.

我究竟做错了什么?

解决方法:

假设您正在通过网络运行它:

>您应该使用IIS,而不是Apache†
> IIS必须启用Windows身份验证
>必须禁用匿名身份验证
>您必须在PHP.ini中设置fastcgi.impersonate = 1

假设您登录的帐户被sql Server识别,那么您应该可以使用.有关完整的讨论,请参见this page.

†在该帖子的评论中,作者建议此为may also be possible with Apache.

关于如何使用Windows身份验证通过sqlalchemy连接到SQL Server?的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于asp.net – IIS7中的SQL Server和Windows身份验证、asp.net通过kerberos集成windows身份验证到sql server、C#连接sqlserver windows 和 sqlserver 身份验证的两种连接字符串、php-使用Windows身份验证通过sqlsrv_connect连接到SQL Server等相关内容,可以在本站寻找。

本文标签: