【问题标题】:If I turn this Python script into an executable, will others be able to execute it?如果我把这个 Python 脚本变成一个可执行文件,其他人能执行它吗?
【发布时间】:2015-12-30 21:27:59
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: python authentication executable pyodbc


    【解决方案1】:

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

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

    GRANT SELECT ON table_name TO my_user
    

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

    【讨论】:

    • 太棒了,正是我希望得到的答案。谢谢你。这应该可行!
    【解决方案2】:

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

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

    在 unix/linux 主机上,您可以设置粘性位,即使非所有者运行脚本,它也会以脚本所有者的身份执行。

    【讨论】:

      猜你喜欢
      • 2021-06-22
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      相关资源
      最近更新 更多