这篇文章主要围绕如何使用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?
- 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?
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身份验证
sqlException was unhandled Login Failed for user 'MyDomain\MachineName$'.
我应用的设置似乎并不重要,我无法让IIS7通过我的Windows登录凭据.
额外细节:
> sql Server和本地计算机都在ActiveDirectory上
> Vista Enterprise,IIS7
> sql Server 2005
>禁用匿名身份验证,启用Windows身份验证
>假冒开/关没有区别
>所有身份(NetworkService,LocalSystem等)给出相同的结果
>经典和集成管道提供相同的结果
救命!
解决方法
> 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
必须访问系统的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启用集成功能
解决方法
在第17页,您将找到Active Directory清单.按照核对表一步一步.
在第30页,您将找到客户端应用程序清单.逐步验证核对表.
第35页是中间层清单.逐步验证它.
第48页是后端核对表.逐步验证它. @H_301_5@ @H_301_5@如果仍有问题,该文档包含故障排除工具的详细列表(kerbtray,klist,ldifde等),详细说明如何在系统事件日志中启用日志记录和审计身份验证错误,详细解释所有错误代码.来自身份验证审核的事件日志条目,依此类推. @H_301_5@一旦弄清楚出了什么问题,修复起来会容易得多.
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
使用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等相关内容,可以在本站寻找。
本文标签: