特定驅動程式的連線資訊
SQLConnect 會假設資料來源名稱、使用者識別碼和密碼足以連接到資料來源,而且所有其他連線資訊可儲存在系統上。 實際狀況通常並非如此。 例如,驅動程式可能需要一組使用者識別碼和密碼才能登入伺服器,並用另一組使用者識別碼和密碼來登入 DBMS。 由於 SQLConnect 會接受單一使用者識別碼和密碼,這表示如果要使用 SQLConnect,則必須以系統上的資料來源資訊儲存其他使用者識別碼和密碼。 這是潛在的安全性漏洞,除非密碼已加密,否則應避免此情況。
SQLDriverConnect 可讓驅動程式在連接字串的關鍵字/值組中定義任意數量的連線資訊。 例如,假設驅動程式需要資料來源名稱、伺服器的使用者識別碼和密碼,以及 DBMS 的使用者識別碼和密碼。 一律使用 XYZ Corp 資料來源的自訂程式可能會提示使用者輸入識別碼和密碼,並建置下列關鍵字/值組或連接字串,以傳遞至 SQLDriverConnect:
注意
如果您要連線到支援 Windows 驗證的資料來源提供者,您應該指定 Trusted_Connection=yes
,而不是在連接字串中指定使用者識別碼和密碼資訊。
DSN={MyDataSourceName};UID={MyUserID};PWD={MyServerPassword};UIDDBMS={MyDBMSUserID};PWDDBMS={MyDBMSUserPassword};
DSN (資料來源名稱) 關鍵字會命名資料來源,UID 和\ PWD 關鍵字會指定伺服器的使用者識別碼和密碼,而 UIDDBMS 和 PWDDBMS 關鍵字會指定 DBMS 的使用者識別碼和密碼。 請注意,最後的分號是選用的。 SQLDriverConnect 會剖析此字串;使用 XYZ Corp 資料來源名稱,從系統擷取其他連線資訊,例如伺服器位址;並使用指定的使用者識別碼和密碼登入伺服器和 DBMS。
SQLDriverConnect 中的關鍵字/值組必須遵循特定語法規則。 關鍵字及其值不應該包含 []{}(),;?*=!@ 字元。 DSN 關鍵字的值不能只包含空白,而且不應該包含前置空白。 由於登錄文法,關鍵字和資料來源名稱不能包含反斜線 (\) 字元。 在關鍵字/值組中的等號周圍不能有空格。
FILEDSN 關鍵字可用來呼叫 SQLDriverConnect,以指定包含資料來源資訊的檔案名稱 (請參閱使用檔案資料來源進行連線,在本節稍後會加以說明)。 SAVEFILE 關鍵字可用於指定 .dsn 檔案名稱,透過呼叫 SQLDriverConnect 成功連線的關鍵字/值組將會儲存在該檔案中。 如需檔案資料來源的詳細資訊,請參閱 SQLDriverConnect 函式描述。