如何在GitHub托管pyodbc代码时安全隐藏用户名与密码?
避免GitHub代码泄露敏感信息的几种实用方法
给你几个靠谱的方案,适配你的pyodbc + SQL Server开发场景:
1. 用系统环境变量存储敏感信息
把用户名、密码这类敏感数据存在系统环境变量里,代码直接读取变量值,不会把敏感内容写入仓库:
操作步骤:
- Windows:打开命令提示符执行以下命令(重启VSCode后生效):
setx DB_USER "yourusername" setx DB_PWD "yourpassword" - Mac/Linux:在终端执行,或者把命令加到
~/.bashrc/~/.zshrc里永久生效:export DB_USER="yourusername" export DB_PWD="yourpassword"
修改后的代码:
import pyodbc import pandas as pd import os # 导入os模块读取环境变量 server = 'servername' database = 'AdventureWorks' username = os.getenv('DB_USER') # 读取环境变量中的用户名 password = os.getenv('DB_PWD') # 读取环境变量中的密码 cnxn = pyodbc.connect(f'DRIVER={{SQL Server}};SERVER={server};DATABASE={database};UID={username};PWD={password}') cursor = cnxn.cursor() query = "SELECT [CountryRegionCode], [Name] FROM Person.CountryRegion;" df = pd.read_sql(query, cnxn) print(df.head(26))
2. 用本地配置文件+Git忽略规则
创建单独的配置文件存放敏感信息,再通过.gitignore让Git忽略这个文件,确保它不会被提交到GitHub:
操作步骤:
- 在项目根目录创建
config.py文件(也可以用config.json格式):
# config.py DB_SERVER = 'servername' DB_NAME = 'AdventureWorks' DB_USER = 'yourusername' DB_PWD = 'yourpassword'
- 创建或修改项目根目录的
.gitignore文件,添加一行:
config.py
(如果用json格式就写config.json)
修改后的代码:
import pyodbc import pandas as pd from config import DB_SERVER, DB_NAME, DB_USER, DB_PWD # 从配置文件导入参数 cnxn = pyodbc.connect(f'DRIVER={{SQL Server}};SERVER={DB_SERVER};DATABASE={DB_NAME};UID={DB_USER};PWD={DB_PWD}') cursor = cnxn.cursor() query = "SELECT [CountryRegionCode], [Name] FROM Person.CountryRegion;" df = pd.read_sql(query, cnxn) print(df.head(26))
3. 用Windows集成认证(仅限Windows环境)
如果你在Windows系统下开发,且当前登录的系统账号拥有目标SQL Server的访问权限,可以直接用Windows身份认证,完全不用写用户名和密码:
修改后的代码:
import pyodbc import pandas as pd server = 'servername' database = 'AdventureWorks' # 用Trusted_Connection参数替代用户名密码 cnxn = pyodbc.connect(f'DRIVER={{SQL Server}};SERVER={server};DATABASE={database};Trusted_Connection=yes;') cursor = cnxn.cursor() query = "SELECT [CountryRegionCode], [Name] FROM Person.CountryRegion;" df = pd.read_sql(query, cnxn) print(df.head(26))
内容的提问来源于stack exchange,提问作者Grantx
相关产品推荐
相关产品推荐

