如果你是 ChatGPT 工作區管理員,並要為你的組織設定 Snowflake 應用程式範本,請使用本指南。範本並不是成員最終使用的應用程式。它是一個設定流程,會在你提供所需的 Snowflake 設定後,建立工作區專用的草稿應用程式。
對於 Snowflake,大部分設定都在 Snowflake 中完成。你需要建立 Snowflake 管理的 MCP 伺服器,向適當角色授予 MCP 伺服器及其底層物件的存取權,然後在 ChatGPT 範本設定流程中輸入受管理 MCP 伺服器 URL 或其組成欄位。ChatGPT 建立草稿應用程式後,你可以像管理其他工作區應用程式一樣發佈及管理它。
你正在設定的內容
你正在 ChatGPT 中建立工作區專用的 Snowflake 應用程式。該應用程式會連接至 Snowflake 管理的 MCP 伺服器,當中定義:
ChatGPT 可以使用哪些動作,稱為工具。
這些工具可以存取哪些 Snowflake 資料或物件。
使用者應以哪個 Snowflake 角色授權。
哪個 Snowflake 資料庫、結構定義和 MCP 伺服器名稱可識別連接器端點。
ChatGPT 只能探索和使用 MCP 伺服器公開,並由使用者授權時採用的 Snowflake 角色允許的工具。
開始之前
你需要:
ChatGPT 工作區管理員或擁有者存取權。
可建立 MCP 伺服器物件並授予權限的 Snowflake 存取權。
MCP 伺服器將所在的 Snowflake 資料庫和結構定義。
決定應允許 ChatGPT 執行哪些操作,例如 Cortex Search、Cortex Analyst、唯讀 SQL,或特定程序或函數。
使用者授權應用程式時將使用的最低權限 Snowflake 角色。
Snowflake 帳戶主機前綴,包括任何區域或雲端後綴。
要準備的值
Snowflake 主機前綴:Snowflake 帳戶 URL 中 .snowflakecomputing.com 之前的所有內容。
資料庫:包含 MCP 伺服器的資料庫。
結構定義:包含 MCP 伺服器的結構定義。
MCP 伺服器名稱:Snowflake MCP 伺服器物件名稱。
完整的受管理 MCP 伺服器 URL(如果 ChatGPT 設定畫面要求輸入 URL)。
Snowflake 角色:使用者授權應用程式時應使用的角色。
工具清單:你希望 ChatGPT 使用的 Snowflake 物件和動作。
決定 ChatGPT 可以執行的操作
只選擇你想公開的功能。常見選項包括:
使用 Cortex Search 在已編製索引的 Snowflake 資料或內容中搜尋答案。
透過已核准的語義視圖,以 Cortex Analyst 進行問答。
用於受控查詢存取的唯讀 SQL。
用於特定工作流程的 Snowflake Agent、預存程序或 UDF。
如果啟用 SQL,除非你的組織已審核並核准寫入存取權,否則請保持唯讀。
建立 Snowflake MCP 伺服器
在 Snowflake 中,使用可建立 MCP 伺服器並授予存取權的角色登入。在應建立 MCP 伺服器的資料庫和結構定義中開啟工作表。
建立一個只列出 ChatGPT 應使用工具的 MCP 伺服器。將物件名稱替換為你自己的 Snowflake 資料庫、結構定義、服務、視圖、倉庫和伺服器名稱。
範例:
CREATE MCP SERVER CHATGPT_SNOWFLAKE_MCP FROM SPECIFICATION $$ tools: - name: "support-search" type: "CORTEX_SEARCH_SERVICE_QUERY" identifier: "CHATGPT_APPS.TOOLS.SUPPORT_SEARCH_SERVICE" title: "Support Search" description: "Search support content for relevant customer issues." - name: "sql-readonly" type: "SYSTEM_EXECUTE_SQL" title: "Read-only SQL" description: "Run read-only SQL queries against approved Snowflake data." config: read_only: true query_timeout: 600 warehouse: "CHATGPT_WH" $$;
工具名稱應保持穩定且具描述性,讓 ChatGPT 可以選擇正確的工具。建立 MCP 伺服器不會自動授予對底層 Snowflake 物件的存取權。
授予正確的 Snowflake 權限
選擇使用者將用來授權的 Snowflake 角色,然後向該角色授予資料庫、結構定義、MCP 伺服器,以及工具所用每個底層物件的存取權。
範例:
GRANT USAGE ON DATABASE CHATGPT_APPS TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON SCHEMA CHATGPT_APPS.TOOLS TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON CORTEX SEARCH SERVICE CHATGPT_APPS.TOOLS.SUPPORT_SEARCH_SERVICE TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON WAREHOUSE CHATGPT_WH TO ROLE CHATGPT_CONNECTOR_ROLE;
如果 MCP 伺服器公開語義視圖、UDF、預存程序或 Cortex Agent,也要授予這些物件所需的權限。
驗證 Snowflake 已準備就緒
執行:
SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;
然後執行:
DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;
確認:
伺服器存在於預期的資料庫和結構定義中。
工具清單符合你的預期。
每個工具識別碼都指向正確的 Snowflake 物件。
連接角色對 MCP 伺服器具有 USAGE 權限。
連接角色對每個底層物件具有所需權限。
在 ChatGPT 中開始範本設定
在 ChatGPT 中,切換至應提供該應用程式的工作區。
開啟 工作區設定 > 應用程式。
選擇 目錄。
搜尋 Snowflake。
選擇 Snowflake 應用程式範本並開始設定。
輸入清晰的應用程式名稱和描述,例如 Snowflake 或 Snowflake - Analytics。
輸入設定流程要求的受管理 MCP 伺服器詳細資料。
如果設定畫面要求輸入完整的受管理 MCP 伺服器 URL,請使用此格式:
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
如果設定畫面要求輸入獨立欄位,請使用該 URL 中的相同值:
Snowflake 主機前綴。
資料庫。
結構定義。
MCP 伺服器名稱。
建立並發佈草稿應用程式
在 ChatGPT 中儲存 Snowflake 範本設定。
建立草稿應用程式。
審閱草稿應用程式詳細資料、驗證設定和可用動作。
準備就緒後,發佈草稿應用程式。
確認應用程式顯示於 工作區設定 > 應用程式 > 已啟用。
為應使用該應用程式的角色設定 使用者存取權。
審閱公開工具的 動作控制。
審閱 應用程式權限,以選擇 ChatGPT 在使用應用程式前何時詢問成員。
這些應用程式權限適用於 ChatGPT 對話。工作區智能代理使用由智能代理建立者設定的個別智能代理控制項,決定哪些應用程式動作可用,以及何時要求最終使用者核准。如需了解智能代理行為,請參閱:適用於 Enterprise 和 Business 的 ChatGPT 工作區智能代理。
測試應用程式
以允許的測試使用者身分,從 ChatGPT 啟動連接流程。
登入 Snowflake,並在出現提示時選擇預期角色。
確認 ChatGPT 可從 MCP 伺服器探索到預期工具。
先執行低風險的讀取動作,例如對已核准資料進行搜尋或唯讀查詢。
確認 Snowflake 權限可防止存取已核准角色和物件以外的內容。
MCP 伺服器 URL 和 OAuth 行為
ChatGPT 會連接至完整的 Snowflake 管理 MCP 伺服器 URL。ChatGPT 使用該 URL 中的 Snowflake 主機前綴來解析 Snowflake OAuth 端點。
不要貼上 Snowsight URL、單獨的 Snowflake 帳戶根 URL,或任何含有額外路徑片段的 URL。MCP URL 必須包含資料庫、結構定義和 MCP 伺服器路徑,並且必須與你的 Snowflake 物件完全相符。
疑難排解
找不到 MCP 伺服器:請重新檢查完整 MCP 伺服器 URL,或獨立的主機前綴、資料庫、結構定義和伺服器欄位。
ChatGPT 中沒有顯示工具:確認 MCP 伺服器規格包含工具,且角色對 MCP 伺服器具有 USAGE 權限。
工具出現但使用時失敗:確認角色對底層 Snowflake 物件具有正確權限。
SQL 工具失敗:確認倉庫名稱正確、倉庫可用、角色對其具有 USAGE 權限,而且如果你原本打算使用唯讀存取,read_only 為 true。
授權失敗:確認使用者可登入 Snowflake 並使用預期角色。
主機名稱連接問題:使用正確的 Snowflake 主機前綴。含底線的 Snowflake 主機名稱可能會造成問題;建議使用連字號。
