如果我把这个Python脚本变成可执行文件,其他人能执行吗?

If I turn this Python script into an executable, will others be able to execute it?

我有一个 Python 脚本,它使用 pyodbc 包连接到 SQL 服务器数据库并运行一些查询,将其保存到 Excel 电子表格并将其格式化以供其他人使用同事使用。

它使用 windows 身份验证连接到 database/server,并非所有员工都可以访问数据库。如果我将我的脚本变成可执行文件,它会不会因为其他可能尝试执行它的人无法访问数据库而失败?如果是这样,有没有办法 link 应用程序通过我的 windows 身份验证而无需将我的用户名和密码硬编码到其中?

谢谢!

如果您的脚本正在对数据库进行身份验证并将其编码到脚本中,那么如果其他人具有执行权限,他们将能够运行按设计进行。

脚本 运行ning 是在 Unix/Linux 主机还是 windows 主机上?无论哪种方式,您都需要世界可执行文件或组可执行文件,并且拥有需要 运行 组中脚本的用户。

在 unix/linux 主机上,您可以设置粘滞位,这将使它作为脚本的所有者执行,即使 non-owner 运行 脚本也是如此。

如果可能,您会想要为此任务创建一个专门的用户。不要包括您的凭据,即使已编译:您的用户名/密码可以相当简单地提取。

我建议在 SQL 服务器上创建一个没有访问权限的用户。然后授予该用户 SELECT 权限,仅在您需要他们访问的表上:

GRANT SELECT ON table_name TO my_user

然后您可以将 my_user / my_password 硬编码到脚本中,安全风险要小得多。祝你好运!