Python 使用Pyodbc连接到SQL server,但不带密码字符串和证书

Python 使用Pyodbc连接到SQL server,但不带密码字符串和证书,python,sql-server,pyodbc,Python,Sql Server,Pyodbc,我能够使用Pyodbc.connect()中的“TrustedConnection=Yes”连接到SQL server 但是我不想在连接()中既不使用windows凭据也不提供密码文本字符串 我正在考虑是否可以只使用证书而不使用连接字符串中的密码概念连接到sql server cnx = pyodbc.connect(user="{username@servername}", ❌password="{pas

我能够使用Pyodbc.connect()中的“TrustedConnection=Yes”连接到SQL server 但是我不想在连接()中既不使用windows凭据也不提供密码文本字符串

我正在考虑是否可以只使用证书而不使用连接字符串中的密码概念连接到sql server

cnx = pyodbc.connect(user="{username@servername}", 
                             ❌password="{password}"❌,  # thinking if we can remove this
                             host="{server_name}",
                             database="{database_name}", 
                            ssl_ca="/home/sachin//root.crt",
                             ssl_verify_cert=True)
目前我正在使用

        pyodbc.connect(
            'DRIVER={ODBC Driver 17 for SQL Server};'
            'SERVER= ' + serverName + ';'
            'DATABASE=' + dbName + ';'
            'Trusted_Connection=yes;')
我想在连接字符串中使用证书而不是密码

cnx = pyodbc.connect(user="{username@servername}", 
                             ❌password="{password}"❌,  # thinking if we can remove this
                             host="{server_name}",
                             database="{database_name}", 
                            ssl_ca="/home/sachin//root.crt",
                             ssl_verify_cert=True)

引用文件:

sqlserver中的身份验证 SQL Server支持两种身份验证模式:Windows身份验证模式和混合模式

  • Windows身份验证是默认设置,通常称为集成安全性,因为此SQL Server安全模型与Windows紧密集成。信任特定的Windows用户和组帐户登录SQL Server。已通过身份验证的Windows用户不必提供其他凭据

  • 混合模式支持通过Windows和SQL Server进行身份验证。用户名和密码对在SQL Server中维护

这些是你仅有的两个选择。如果您随后进一步阅读:

混合模式认证 如果必须使用混合模式身份验证,则必须创建存储在SQL Server中的SQL Server登录。然后,您必须在运行时提供SQL Server用户名和密码

请注意,它再次明确地声明了密码,没有其他内容。对于连接字符串,不能使用其他内容而不是密码。您要么需要使用可信连接,然后通过域处理身份验证,要么使用SQL身份验证并使用用户名和密码


如果您不想使用这些身份验证方法,那么SQL Server不是适合您的RDBMS选择,您需要尝试并找到支持您想要使用的身份验证方法的替代RDBMS。

“但我不想在连接中既不使用windows凭据也不提供密码文本字符串”SQL Server仅支持两种身份验证方法:可信连接或SQL身份验证。如果您不想使用这两种连接方法中的任何一种,那么就不能使用SQL Server。此外,您的代码具有
cnx=mysql.connector.connect
。如果您使用的是SQL Server,为什么要使用MySQL对象?嗨,Larnu,我想使用SQL身份验证,用户名没有问题,但我想使用ssL证书来进行身份验证,因为SQL身份验证可能使用密码,而不是证书。