【发布时间】:2022-07-19 12:37:41
【问题描述】:
我拥有对 MS SQL 数据库的选择访问权限,我想将数据提取到在 Jupyter 笔记本中运行的 Pandas 数据框中。由于我无法控制的原因,我可以从其他用户访问数据库。如何在连接到当前用户帐户时从 Jupyter 查询数据库?
【问题讨论】:
标签: python sql-server pandas windows jupyter-notebook
我拥有对 MS SQL 数据库的选择访问权限,我想将数据提取到在 Jupyter 笔记本中运行的 Pandas 数据框中。由于我无法控制的原因,我可以从其他用户访问数据库。如何在连接到当前用户帐户时从 Jupyter 查询数据库?
【问题讨论】:
标签: python sql-server pandas windows jupyter-notebook
你可以这样做:
需要为计算机中的所有用户安装 Python。 !非常重要
安装 Visual C++ 构建工具 Microsoft C++ 构建工具 - Visual Studio
为计算机中所有用户都可以访问的 virtualenv 创建一个目录,例如: mkdir C:\virtualenv
复制命令提示符并粘贴到 virtualenv 目录中。 来自:C:\Users\YOURUSERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools\Command Prompt 到:C:\virtualenv\命令提示符
以其他用户身份运行命令提示符(按 shift + 右键单击)并使用 YOURDOMAIN 登录。 用户名:YOURUSERNAME@YOURDOMAIN 或 YOURDOMAIN\YOURUSERNAME 密码:你的密码
cd C:\virtualenv
创建虚拟环境: python -m venv .
连接到虚拟环境。 脚本\激活
安装依赖 pip install --upgrade jupyter pyodbc sqlalchemy pandas pip
为用户创建一个 Jupyter 配置文件。 jupyter notebook --generate-config
关闭命令提示符。
右键单击命令提示符快捷方式,然后选择属性。
清除 Start in 中的值并将其留空,并将 Target 值替换为: 目标:%windir%\system32\runas.exe /user:YOURUSERNAME@DOMAIN /netonly “CMD /k "cd C:\virtualenv && Scripts\activate && jupyter notebook”" **可选:您可以添加 /savecred(在/用户之后),它会记住密码。出于安全原因,您不应这样做。
双击命令提示符运行 Jupyter。
创建一个笔记本以连接到您的 SQL 数据库并将表下载到 Pandas 数据框中:
导入操作系统 导入pyodbc 将 sqlalchemy 导入为数据库 将熊猫导入为 pd
windomain = os.environ['userdomain']
如果 windomain == “YOURDOMAIN”: 服务器 = '你的服务器' 数据库 = 'YOUDATABASE' 驱动程序 = “{SQL Server}” # 无需输入用户名或密码。 连接=“驱动程序=”+驱动程序+“;服务器=”+ 服务器+“;数据库=”+数据库+ “;Trusted_Connection=是” engine = db.create_engine(“mssql+pyodbc:///?odbc_connect={}”.format(connect)) 别的: print(“以其他用户身份打开。”)
df = pd.read_sql( """ 选择顶部(100)* 来自 [您的数据库] """, con=引擎, )
【讨论】: