- PR -

MSDE2000にC#で接続

1
投稿者投稿内容
moto
会議室デビュー日: 2003/12/21
投稿数: 12
投稿日時: 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などのサーバーソフトをインストールしないといけないということ
でしょうか?


ご存知の方みえましたら、よろしくお願いします。


sou
ベテラン
会議室デビュー日: 2002/09/25
投稿数: 56
投稿日時: 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
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2005-07-05 10:27
諸農です。

こんなの見つけました。
SQL Server 2000 ローカル データベースのネットワーク接続をセキュリティで保護する方法

あいそびの開発ノート MSDEにリモート接続


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2005-07-05 11:21
引用:

motoさんの書き込み (2005-07-04 18:05) より:

[LANを経由して接続NGの時]
string connStr = "Server=(192.168.1.111)\\TEST_MSDE200;"
+ "Trusted_Connection=yes;"
+ "database=client_manage";
SqlConnection conn = new SqlConnection(connStr);
conn.Open();




Serverの指定で()はlocalのとき以外必要ないような。
また、souさんも言ってますが、Trusted_Connection=yes;というのはWindows認証の
ときに使うので、SQL認証ならユーザ名とパスワードが必要ですね。
接続文字列についてきちんと勉強する必要がありそう。

あと、XPマシンにMSDEを入れてそれを共有する、というのはライセンス的に
問題がありそうです。
テストでやってみるレベルならともかく、業務で使うのであれば、このあたり
クリアにしておいたほうがいいと思います。
確実なことはMicrosoftに聞いてください。
moto
会議室デビュー日: 2003/12/21
投稿数: 12
投稿日時: 2005-07-05 11:34
sou殿 Jubei殿
ありがとうございます。

まず、Jubei殿提供のサイトの記述どおりsvrnetcnとcliconfgを
それぞれのPCで実行したのですが、結果は変わりませんでした。

次に、sou殿ご指摘のようにユーザーの権限を追加しようとしてみたのですが
コマンドプロンプトからもエラーで拒否されてしまいます。
[コマンド]
>osql -E

[エラー]
[Shared Memory]SQL Serverが存在しないか、アクセスが拒否されました。
[Shared Memory]Connection Open(Connect())

上記のエラーで設定が行なえません。

コマンドラインは全然わからないので
もしかしたら、全然検討違いのことをやっているのでしょうか?


moto
会議室デビュー日: 2003/12/21
投稿数: 12
投稿日時: 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を共有で使うのは問題ありそうですね
テストまでとどめておきたいと思います。
しかし、接続ができないのが、どうにもスッキリしなくて



edenzai
会議室デビュー日: 2005/07/04
投稿数: 2
投稿日時: 2005-07-06 11:55
Xp-Pro SP2のファイアーウォールに引っかかっていませんか?

http://www.an.shimadzu.co.jp/support/download/windows/agent2.htm
などに書いてありますよ。

ポートの
TCP 1433
UDP 1434
を例外として登録したら接続できませんか?

moto
会議室デビュー日: 2003/12/21
投稿数: 12
投稿日時: 2005-07-06 13:17
edenzai殿ありがとうございます。

なるほどと思い、やってみたのですがダメでした。
セキュリティーソフト、Windowsファイアーウォールともに設定&解除を
試みてみたのですが、接続できませんでした。

もう少しがんばってみます。
1

スキルアップ/キャリアアップ(JOB@IT)