- - PR -
MSDE2000にC#で接続
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-07-04 18:05
いつもお世話になっております。
motoといいます。 MSDEをはじめて使いネットワーク経由での接続が出来ません。 どなたか教えてください。 [状況] PC1[windowsXP pro + sp2]のパソコン上に、WinSystemのMSDEインストーラを使用し、 windows + SQLの認証モードで、ネットワーク接続を有効にして、 インストールしました。 そこで、LANで共有を許可しているPC2[windowsXP pro + sp2]から、テスト的に C#で作ったソフトで接続しようとすると接続できません。 そのソフトをPC1で実行し接続を試みたら値の取得が出来たのですがPC2からは接続時にエラーになります。 [ソース-PC1のローカルから接続OKの時] string connStr = "Server=(local)\\TEST_MSDE200;" + "Trusted_Connection=yes;" + "database=client_manage"; SqlConnection conn = new SqlConnection(connStr); conn.Open(); [LANを経由して接続NGの時] string connStr = "Server=(192.168.1.111)\\TEST_MSDE200;" + "Trusted_Connection=yes;" + "database=client_manage"; SqlConnection conn = new SqlConnection(connStr); conn.Open(); [エラー内容] SQL Server が存在しないか、アクセスが拒否されました。 MSDEをはじめて使うのですが、調べていたら、どこぞのHPに WinXPで使う時はスタンドアロンのみで使用するのは可能ですが、 ネットワーク経由ではライセンス違反になるようなことが書いてあったのですが それが関係するのでしょうか? [どこぞのHP] http://pc8.2ch.net/test/read.cgi/db/1063716668/ または、IISなどのサーバーソフトをインストールしないといけないということ でしょうか? ご存知の方みえましたら、よろしくお願いします。 | ||||
|
投稿日時: 2005-07-04 23:12
接続文字列に"Trusted_Connection=yes"があるということは、Windows認証でデータベースにアクセスしようとしていますよね?
おそらく、PC2のログオンユーザーがPC1上のMSDEにアクセス許可がされていないんではなかろうかと思います。アクセス許可を与えてやれば接続可能と思います。 SQL Server認証で接続する場合は、接続文字列にUser IDとPasswardを指定してやる必要があります。 詳しくは、 SqlConnection.ConnectionString プロパティ http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatasqlclientsqlconnectionclassconnectionstringtopic.asp データプロバイダ http://www.microsoft.com/japan/msdn/sqlserver/columns/ADONET/ADONET2.asp SQL Server 2000 のユーザーと権限 http://www.microsoft.com/japan/msdn/sqlserver/columns/SQLbeginner/SQLbeginner4.asp | ||||
|
投稿日時: 2005-07-05 10:27
諸農です。
こんなの見つけました。 SQL Server 2000 ローカル データベースのネットワーク接続をセキュリティで保護する方法 あいそびの開発ノート MSDEにリモート接続 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2005-07-05 11:21
Serverの指定で()はlocalのとき以外必要ないような。 また、souさんも言ってますが、Trusted_Connection=yes;というのはWindows認証の ときに使うので、SQL認証ならユーザ名とパスワードが必要ですね。 接続文字列についてきちんと勉強する必要がありそう。 あと、XPマシンにMSDEを入れてそれを共有する、というのはライセンス的に 問題がありそうです。 テストでやってみるレベルならともかく、業務で使うのであれば、このあたり クリアにしておいたほうがいいと思います。 確実なことはMicrosoftに聞いてください。 | ||||
|
投稿日時: 2005-07-05 11:34
sou殿 Jubei殿
ありがとうございます。 まず、Jubei殿提供のサイトの記述どおりsvrnetcnとcliconfgを それぞれのPCで実行したのですが、結果は変わりませんでした。 次に、sou殿ご指摘のようにユーザーの権限を追加しようとしてみたのですが コマンドプロンプトからもエラーで拒否されてしまいます。 [コマンド] >osql -E [エラー] [Shared Memory]SQL Serverが存在しないか、アクセスが拒否されました。 [Shared Memory]Connection Open(Connect()) 上記のエラーで設定が行なえません。 コマンドラインは全然わからないので もしかしたら、全然検討違いのことをやっているのでしょうか? | ||||
|
投稿日時: 2005-07-05 11:40
どっとねっとふぁん殿
ありがとうございます。 SQL認証も試してみたのですがダメでした。 [コードNG] string connStr = "Server=192.168.1.101\\TEST_MSDE200;" + "database=client_manage;" + "User ID=sa;" + "Password=****"; インストール時にはWindws認証+SQL混合認証でインストールしたので 両方ためしてみたのですが ダメですね。 たしかに、XPマシンにMSDEを共有で使うのは問題ありそうですね テストまでとどめておきたいと思います。 しかし、接続ができないのが、どうにもスッキリしなくて | ||||
|
投稿日時: 2005-07-06 11:55
Xp-Pro SP2のファイアーウォールに引っかかっていませんか?
http://www.an.shimadzu.co.jp/support/download/windows/agent2.htm などに書いてありますよ。 ポートの TCP 1433 UDP 1434 を例外として登録したら接続できませんか? | ||||
|
投稿日時: 2005-07-06 13:17
edenzai殿ありがとうございます。
なるほどと思い、やってみたのですがダメでした。 セキュリティーソフト、Windowsファイアーウォールともに設定&解除を 試みてみたのですが、接続できませんでした。 もう少しがんばってみます。 |
1