我可以使用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。