OPENDATASOURCE (Transact-SQL)
更新: 2006 年 4 月 14 日
提供特定連接資訊作為四部分物件名稱,而不使用連結伺服器名稱。
語法
OPENDATASOURCE ( provider_name, init_string )
引數
- provider_name
這是登錄為用來存取資料來源之 OLE DB 提供者的 PROGID 的名稱。provider_name 的資料類型是 char,沒有預設值。
init_string
這是傳遞至目的地提供者之 IDataInitialize 介面的連接字串。提供者字串語法是以分號隔開的關鍵字-值配對為基礎,例如:'keyword1=value;keyword2=value'。如需在提供者上支援的特定關鍵字-值配對,請參閱 Microsoft Data Access SDK。這份文件集定義基本語法。下表列出 init_string 引數最常使用的關鍵字。
關鍵字 OLE DB 屬性 有效值和描述 資料來源
DBPROP_INIT_DATASOURCE
要連接的資料來源名稱。不同提供者以不同方式解譯這個名稱。如果是 SQL Native Client OLE DB 提供者,這表示伺服器的名稱。如果是 Jet OLE DB 提供者,這表示 .mdb 檔或 .xls 檔的完整路徑。
位置
DBPROP_INIT_LOCATION
要連接的資料庫位置。
擴充屬性
DBPROP_INIT_PROVIDERSTRING
提供者特定連接字串。
連接逾時
DBPROP_INIT_TIMEOUT
逾時值,在此之後連接嘗試會失敗。
使用者識別碼
DBPROP_AUTH_USERID
用於連接的使用者識別碼。
密碼
DBPROP_AUTH_PASSWORD
用於連接的密碼。
目錄
DBPROP_INIT_CATALOG
連接到資料來源的初始或預設目錄名稱。
整合式安全性
DBPROP_AUTH_INTEGRATED
SSPI,用來指定 Windows 驗證
備註
唯有針對指定的提供者將 DisallowAdhocAccess 登錄選項明確設為 0 時,且已啟用 [特定分散式查詢] 進階組態選項時,才可使用 OPENDATASOURCE 來存取 OLE DB 資料來源的遠端資料。若未設定這些選項,預設行為便不允許特定存取。
OPENDATASOURCE 函數可使用於與連結伺服器名稱相同的 Transact-SQL 語法位置。因此,OPENDATASOURCE 可作為四部分名稱的第一部分使用,來參考 SELECT、INSERT、UPDATE 或 DELETE 陳述式中的資料表或檢視名稱,或參考 EXECUTE 陳述式中的遠端預存程序。執行遠端預存程序時,OPENDATASOURCE 應該參考 SQL Server 的另一個執行個體。OPENDATASOURCE 不接受變數作為其引數。
如同 OPENROWSET 函數,OPENDATASOURCE 只應該參考不常存取的 OLE DB 資料來源。請為存取多次的資料來源定義連結伺服器。OPENDATASOURCE 或 OPENROWSET 都不提供連結伺服器定義的所有功能,例如安全性管理和查詢目錄資訊的能力。每次在呼叫 OPENDATASOURCE 時,都必須提供所有連接資訊,包括密碼在內。
重要事項: |
---|
Windows 驗證比 SQL Server 驗證更安全。可能的話,您應該使用 Windows 驗證。OPENDATASOURCE 不應與連接字串中的明確密碼一起使用。 |
權限
任何使用者都可以執行 OPENDATASOURCE。您可以從連接字串判斷用來連接到遠端伺服器的權限。
範例
下列範例對伺服器 London
上的 SQL Server Payroll
執行個體建立特定連接,並查詢 AdventureWorks.HumanResources.Employee
資料表。
SELECT *
FROM OPENDATASOURCE('SQLNCLI',
'Data Source=London\Payroll;Integrated Security=SSPI')
.AdventureWorks.HumanResources.Employee
請參閱
參考
OPENROWSET (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
其他資源
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 4 月 14 日 |
|