2015-12-30 63 views
-2

我有一个Python脚本,它使用pyodbc软件包连接到SQL Server数据库并运行一些查询,将其保存到Excel电子表格并将其格式化以供其他同事使用。如果我将这个Python脚本转换为可执行文件,其他人是否可以执行它?

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

谢谢!

回答

2

如果可能,您将要为此任务创建专用用户。即使编译,也不要包含您的凭证:您的用户名/密码可以非常简单地提取。

我建议在SQL Server上创建一个用户,不能访问。然后授予该用户SELECT权限,只在你需要的时候访问的表:

GRANT SELECT ON table_name TO my_user 

然后你可以硬my_user/MY_PASSWORD一个小得多的安全隐患代码插入脚本。祝你好运!

+0

太棒了,正是我所希望的答案。谢谢。这应该工作! – codycrossley

1

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

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

在unix/linux主机上,您可以设置sticky位,即使非所有者运行脚本,也会使其作为脚本的所有者执行。

相关问题