繁体   English   中英

在 Jupyter 笔记本中,如何使用不同的 Windows 用户连接到 MS SQL

[英]In Jupyter notebooks, how to connect to MS SQL with a different Windows user

我有选择访问 MS SQL 数据库的权限,我想将数据提取到在 Jupyter 笔记本中运行的 Pandas 数据框中。 由于我无法控制的原因,我可以从其他用户访问数据库。 如何在连接到当前用户帐户时从 Jupyter 查询数据库?

您可以这样做:

  1. 需要为计算机中的所有用户安装 Python。 !很重要

  2. 安装 Visual C++ 构建工具 Microsoft C++ 构建工具 - Visual Studio

  3. 为计算机中所有用户都可以访问的 virtualenv 创建一个目录,例如:mkdir C:\virtualenv

  4. 制作命令提示符的副本并粘贴到 virtualenv 目录中。 从:C:\Users\YOURUSERNAME\AppData\Roaming\Microsoft\Windows\开始菜单\程序\系统工具\命令提示符到:C:\virtualenv\命令提示符

  5. 以不同的用户身份运行命令提示符(按 shift + 右键单击​​)并使用 YOURDOMAIN 登录。 用户名:YOURUSERNAME@YOURDOMAIN 或 YOURDOMAIN\YOURUSERNAME 密码:您的密码

  6. cd C:\virtualenv

  7. 创建虚拟环境: python -m venv 。

  8. 连接到虚拟环境。 脚本\激活

  9. 安装依赖 pip install --upgrade jupyter pyodbc sqlalchemy pandas pip

  10. 为用户创建一个 Jupyter 配置文件。 jupyter notebook --generate-config

  11. 关闭命令提示符。

  12. 右键单击命令提示符快捷方式,然后选择属性。

  13. 清除 Start in 中的值并将其留空,并将 Target 值替换为: Target: %windir%\system32\runas.exe /user:YOURUSERNAME@DOMAIN /netonly “CMD /k "cd C:\virtualenv && Scripts\activate && jupyter notebook”” **可选:您可以添加 /savecred (after/user),它会记住密码。 出于安全原因,您不应该这样做。

  14. 双击命令提示符运行 Jupyter。

  15. 创建一个笔记本以连接到您的 SQL 数据库并将表下载到 Pandas 数据框中:

    导入 os 导入 pyodbc 导入 sqlalchemy 作为 db 导入 pandas 作为 pd

    windomain = os.environ['userdomain']

    if windomain == “YOURDOMAIN”: server = 'YOURSERVER' database = 'YOUDATABASE' driver = “{SQL Server}” # 无需输入用户名或密码。 connect = "DRIVER="+driver+";SERVER="+ server+";DATABASE="+database+ ";Trusted_Connection=yes" engine = db.create_engine("mssql+pyodbc:///?odbc_connect={}".format (connect)) else: print(“以其他用户身份打开。”)

    df = pd.read_sql(""" SELECT TOP(100) * FROM [YOURDATABASE] """, con=engine, )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM