我有一个Python脚本,它使用pyodbc包连接到SQL Server数据库并运行一些查询,将其保存到Excel电子表格并格式化以供其他同事使用。
它使用Windows身份验证连接到数据库/服务器,并非所有员工都可以访问数据库。如果我将我的脚本变成可执行文件,它是否会失败,因为可能尝试执行它的其他人无法访问数据库?如果是这样,有没有办法将应用程序链接到我的Windows身份验证,而无需将用户名和密码硬编码到其中?
谢谢!
答案 0 :(得分:2)
如果可能,您将要为此任务创建专用用户。即使已编译,也不要包含您的凭据:您的用户名/密码可以相当简单地提取。
我建议在SQL Server上创建一个没有访问权限的用户。然后GRANT表示用户SELECT权限,仅限于您需要访问的表:
GRANT SELECT ON table_name TO my_user
然后,您可以将my_user / my_password硬编码到脚本中,并且安全风险要小得多。祝你好运!
答案 1 :(得分:1)
如果您的脚本正在对数据库进行身份验证并且已编码到脚本中,那么如果其他脚本具有执行权限,则他们将能够按设计运行它。
脚本是在Unix / Linux主机还是Windows主机上运行?无论哪种方式,您都需要世界可执行的OR组可执行文件,并让需要在组中运行脚本的用户。
在unix / linux主机上,您可以设置粘滞位,即使非所有者运行脚本,也会使其作为脚本的所有者执行。