如何保护Python脚本SQL Server身份验证

如何保护Python脚本SQL Server身份验证,python,sql-server,security,password-protection,Python,Sql Server,Security,Password Protection,我正在使用Python脚本连接到SQL Server数据库: import pyodbc import pandas server = 'SQL' database = 'DB_TEST' username = 'USER' password = 'My password' sql=''' SELECT * FROM [DB_TEST].[dbo].[test] ''' cnxn = pyodbc.connect('DRIVER=SQL Server;SERVER='+server

我正在使用Python脚本连接到SQL Server数据库:

import pyodbc
import pandas 

server = 'SQL' 
database = 'DB_TEST' 
username = 'USER' 
password = 'My password' 

sql='''
SELECT *
FROM [DB_TEST].[dbo].[test]
'''
cnxn = pyodbc.connect('DRIVER=SQL Server;SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)

data = pandas.read_sql(sql,cnxn)
cnxn.close()
脚本每天都由自动化工具启动,因此没有物理用户


问题是如何用安全的方法替换密码字段?

自动脚本仍然由windows用户运行。将此windows用户添加到SQL Server用户并授予其相应的权限,以便您可以使用:

import pyodbc
import pandas 

server = 'SQL' 
database = 'DB_TEST'

sql='''
SELECT *
FROM [DB_TEST].[dbo].[test]
'''
cnxn = pyodbc.connect(
    f'DRIVER=SQL Server;SERVER={server};DATABASE={database};Trusted_Connection=True;')

data = pandas.read_sql(sql,cnxn)
cnxn.close()

自动脚本仍由windows用户运行。将此windows用户添加到SQL Server用户并授予其相应的权限,以便您可以使用:

import pyodbc
import pandas 

server = 'SQL' 
database = 'DB_TEST'

sql='''
SELECT *
FROM [DB_TEST].[dbo].[test]
'''
cnxn = pyodbc.connect(
    f'DRIVER=SQL Server;SERVER={server};DATABASE={database};Trusted_Connection=True;')

data = pandas.read_sql(sql,cnxn)
cnxn.close()

我还对使用Python进行安全编码感兴趣。我做了自己的研究,以找出可用的选项,我建议在总结所有内容的同时回顾这篇文章。查看列出的选项,并应用一个更适合您的选项。

我也对使用Python进行安全编码感兴趣。我自己做了研究,以找出可用的选项,我建议您在总结所有内容的同时查看这篇文章。检查列出的选项,并应用更适合您的选项。

您所说的“用安全方法替换密码字段”是什么意思?您也可以将密码作为一个环境变量,并使用
os.environ.get()
阅读它,我的意思是防止脚本中有明确的密码。这是否回答了您的问题?具体来说,这个答案是:“用安全的方法替换密码字段”是什么意思?您也可以将密码作为一个环境变量,并使用
os.environ.get()
读取密码。我的意思是防止脚本中有明确的密码。这是否回答了您的问题?具体来说,这个答案是:我的用户登录失败,我不允许添加特定用户作为受信任的连接。如果您不能添加您的用户,您将不得不使用密码。您可以将其放置在代码以外的其他位置,但总会存在漏洞。(文件、环境变量等)是的,我也认为没有强有力的解决方案。我的用户登录失败,我不允许添加特定用户作为受信任的连接。如果您无法添加用户,则必须使用密码。您可以将其放置在代码以外的其他位置,但总会存在漏洞。(文件、环境变量等)是的,我也认为没有强有力的解决方案。