我在爲Windows 7上的SQL Server創建ODBC數據源連接時遇到問題。MS SQL服務器:不能在Windows 7上連接ODBC?
問題摘要:只能爲「主」數據庫創建ODBC數據源連接,而不是爲其他任意數據庫創建連接。
我已經搜索了網絡,並沒有找到解決方案。以下是詳細信息:
- 我在Windows 7 64位系統上安裝了MS SQL Server。詳細信息:SQLEXPRESS版本,版本:10.1.2531.0,版本:2007.100.2531.0,實例ID:MSSQL10.SQLEXPRESS。
使用「SQL Server配置管理器」,它說:
SQL Server(SQLEXPRESS) running我還建立了:「登錄爲:內置帳戶 - >本地系統」。
使用「Microsoft SQL Server Management Studio」(版本10.0.1600.22)我已連接到數據庫,並使用空白的用戶名和密碼。然後,我創建了一個名爲「Test1」的新數據庫,並指示創建的文件位於:「F:\ Data \ SQL Server \ Test1.sdf」。 我繼續創建了幾個(不重要的)表,填充了幾行代碼,併成功運行了幾個查詢 - 全部使用「Microsoft SQL Server Management Studio」。到現在爲止還挺好。
但是,我需要使用ODBC連接從外部程序接口到數據庫。 因此,使用「ODBC數據源管理員」(\%sysdir%\ SysWOW64 \ odbcad32.exe版本6.1.7600.16385)(64位),我試圖創建一個數據源界面。這裏是我的經歷:(我叫dsn:「SYS_DB」):
3a。去「系統DNS」 - >添加 - >「SQL Native Client 10.0」; (爲司機);服務器:PLUTO \ SQLEXPRESS; 「使用集成的Windows身份驗證」; (所有其他選項:默認),當我按下「測試數據源」時,它會顯示:
... ... Address PLUTO\SQLEXPRESS' was used to establish the connection. ... TESTS COMPLETED SUCCESSFULLY!(PLUTO是計算機名稱)。
3b。問題是,我需要連接到「Test1」數據庫,而不是默認的「主」數據庫。
因此,在「ODBC數據源管理員」窗口的第三個窗口中,當我去時: - >將默認數據庫更改爲:Test1,我得到一個窗口說:
The database entered is not valid如果我去一個窗口,並取消選中:「連接到SQL Server以獲取其他配置選項的設置」,然後檢查:「附加數據庫文件名」:F:\ Data \ SQL Server \ Test1.sdf(如我在上面的2.中所述),數據源測試失敗:
Attempting connection [Microsoft][SQL Server Native Client 10.0][SQL Server] The header for file 'F:\Data\SQL Server\Test1.sdf' is not a valid database file header. The FILE SIZE property is incorrect.3c。嘗試設置驅動程序時:「系統DNS」 - >「添加」 - >「SQL Server」; (而不是上面3a中的「SQL Native Client 10.0」),行爲是相同的:連接到默認的「master」數據庫時成功,嘗試連接到「Test1」數據庫時失敗,錯誤消息與在3b中。以上。
- 注:當我走:「SQLCMD -L」,它說:
Servers: PLUTO PLUTO\SQLEXPRESS
我整個網絡一派,還沒有找到一個解決方案。您的幫助將不勝感激。
許多TIA - 海倫
更多信息(3-16):當我去:
>sqlcmd -S pluto\sqlexpress -Q "select getdate()" 2013-03-16 10:07:04.380 (1 rows affected)所以用默認的連接( 「主」)數據庫工作正常。
但是,當我去:
>sqlcmd -S pluto\sqlexpress -d Test1 -Q "select getdate()"
Msg 4060, Level 11, State 1, Server PLUTO\SQLEXPRESS, Line 1
Cannot open database "Test1" requested by the login. The login failed.
Msg 18456, Level 14, State 1, Server PLUTO\SQLEXPRESS, Line 1
Login failed for user 'PLUTO\MyUser'.
如此看來,這個問題是與用戶權限/權限到該服務器上的新的數據庫,即:「測試1」。
任何人都可以幫助如何檢查/分配SQL Server上的特定數據庫的權限?
許多TIA
海倫
請參閱[this](http://support.dataaccess.com/Forums/entry.php?126-I-Cannot-Connect-To-An-ODBC-Database)和[this](http:// support.microsoft.com/kb/942976)。我猜你的問題很小。 – omid 2013-03-16 13:19:07
@omid:這不是32位與64位的問題。因爲:1.我使用的ODBC管理器是64位; 2.正如我在OP的3a中所提到的,當我連接到dsn的「master」數據庫(它說:「測試已成功完成!」)時,ODBC管理器連接測試正常工作。嘗試連接到同一SQL服務器上的另一個數據庫(「Test1」)時彈出問題。 – 2013-03-16 15:52:52