Windows7でSQL-ServerのODBCデータソース接続を作成する際に問題が発生しました。
問題の概要:ODBCデータソース接続は、「マスター」データベースに対してのみ作成でき、追加の任意のデータベースに対しては作成できません。
私はネットをグーグルで検索しましたが、解決策が見つかりませんでした。詳細は次のとおりです。
- Windows764ビットシステムにMSSQLServerをインストールしています。詳細:SQLEXPRESSエディション、バージョン:10.1.2531.0、ビルド:2007.100.2531.0、インスタンスID:MSSQL10.SQLEXPRESS。
「SQLServerConfigurationManager」を使用すると、次のようになります。
実行中のSQLServer(SQLEXPRESS)また、「ログオン:組み込みアカウント->ローカルシステム」も設定しました。
「MicrosoftSQLServerManagement Studio」(バージョン10.0.1600.22)を使用して、ユーザー名とパスワードを空白にしてデータベースに接続しました。次に、「Test1」という新しいデータベースを作成し、作成したファイルを「F:\ Data \ SQLServer\Test1.sdf」に配置するように指示しました。いくつかの(簡単な)テーブルの作成を続け、数行を入力し、いくつかのクエリを正常に実行しました。すべて「Microsoft SQLServerManagementStudio」を使用しました。ここまでは順調ですね。
ただし、ODBC接続を使用して、外部プログラムからデータベースに接続する必要があります。したがって、「ODBCデータソースアドミニストレータ」(\%sysdir%\ SysWOW64 \ odbcad32.exeバージョン6.1.7600.16385)(64ビット)を使用して、データソースインターフェイスを作成しようとしています。これが私の経験です:(私はdsn: "SYS_DB"と呼んでいます):
3a。「システムDNS」->「追加」->「SQLNativeClient10.0」に移動する場合。(ドライバー用); サーバー:PLUTO \ SQLEXPRESS; "統合Windows認証付き"; (他のすべてのオプション:デフォルト)、「データソースのテスト」を押すと、次のように表示されます。
......アドレスPLUTO\SQLEXPRESS'を使用して接続を確立しました。 ...テストが正常に完了しました!(PLUTOはコンピューター名です)。
3b。問題は、デフォルトの「マスター」データベースではなく、「Test1」データベースに接続する必要があることです。
したがって、[ODBCデータソースアドミニストレータ]ウィンドウの3番目のウィンドウで、次の手順を実行すると、次のようになります。->デフォルトのデータベースをTest1に変更すると、次のようなウィンドウが表示されます。
入力されたデータベースは無効です1つのウィンドウに戻って、[SQL Serverに接続して追加の構成オプションの設定を取得する]のチェックを外し、[データベースファイル名の添付]:F:\ Data \ SQL Server \ Test1.sdf(Iのように)をチェックします。上記の2.で述べたように、データソーステストは次の場合に失敗します。
接続を試みています [Microsoft][SQLServerネイティブクライアント10.0][SQLServer] ファイル'F:\ Data \ SQL Server \ Test1.sdf'のヘッダーは、有効なデータベースファイルヘッダーではありません。 FILESIZEプロパティが正しくありません。3c。ドライバを設定しようとする場合:「システムDNS」->「追加」->「SQLServer」; (上記の3aのような「SQLNative Client 10.0」の代わりに)動作は同じです。デフォルトの「マスター」データベースに接続すると成功し、「Test1」データベースに接続しようとすると失敗し、同じエラーメッセージが表示されます。 3bで。その上。
- 注:「SQLcmd-L」に移動すると、次のように表示されます。
サーバー: 冥王星 PLUTO \ SQLEXPRESS
私はネット全体をグーグルで検索しましたが、解決策が見つかりませんでした。あなたの助けをいただければ幸いです。
多くのTIA-ヘレン
詳細情報(3-16):私が行くとき:
> sqlcmd -S pluto \ sqlexpress -Q "select getdate()" 2013-03-16 10:07:04.380(1行が影響を受ける)したがって、デフォルト(「マスター」)データベースとの接続は正常に機能します。
しかし、私が行くとき:
>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'.
したがって、問題は、そのサーバー上の新しいデータベース、つまり「Test1」へのユーザー権限/アクセス権にあるようです。
SQL Server上の特定のデータベースへのアクセス許可を検査/割り当てる方法を誰かが手伝ってもらえますか?
多くのTIA
ヘレン