簡體   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