使用没有密码字符串和证书的Pyodbc连接到SQL服务器



我可以使用Pyodbc.connect((中的"TrustedConnection=Yes"连接到SQL服务器但我既不想使用windows凭据,也不想在connection((中提供密码文本字符串

我在想我是否可以只使用连接字符串中没有密码概念的证书连接到sql server

目前我正在使用

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)

引用SQL Server中的验证文档:

SQL Server中的身份验证

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。

相关内容

  • 没有找到相关文章

最新更新