- - PR -
".NET Framework Data Provider for Oracle"の使い方について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-06-27 23:18
昨日、Visual Studio .NET Version 2003(無償アップグレード!)
が到着したので、 ".NET Framework Data Provider for Oracle" を使ってみようと思って、ドキュメントを見たのですが、 接続文字列の例を見て、正直、度肝を抜かれました。 "Data Source=Oracle8i;Integrated Security=yes" これでどうして接続できるのか、 私には、さっぱりわからないんです。 ユーザーIDもパスワードも無いのに? だいいちどこに接続してるの? きっと他にも何かしらの設定があるのでしょうね。 |
|
投稿日時: 2003-06-30 13:43
こんにちは。
動かしたわけではないので(インストールはしていたのだが)想像半分ですが・・・ 接続先はData Sourceで指定してあるOracle8iというSIDもしくはTNS Nameです。これは、OleDbでもそうなので、間違いないでしょう。ユーザ名とパスワードは、おそらく実行時に問い合わせてくると思います。 追加 %ORACLE_HOME%/network/ADMIN/sqlnet.oraファイルで、 SQLNET.AUTHENTICATION_SERVICESの値が (NTS)になっていたら、Windows統合認証が使われるので、ユーザ名/パスワードは必要ありません。逆に、Windows統合認証を使わない場合はこの値を(NONE)にします。最初の接続が早くなります。 [ メッセージ編集済み 編集者: Jitta 編集日時 2003-06-30 13:47 ] |
|
投稿日時: 2003-06-30 22:44
どうもありがとうございます。
ドキュメントでのData Sourceの説明は 「接続する Oracle のインスタンスの名前またはネットワーク アドレス」 となっています。 Oracleのインスタンスの名前って何だろう??? >Windows統合認証が使われるので、ユーザ名/パスワードは必要ありません。 Windows統合認証を使う場合は、 前もって、ASPNETをオラクルのユーザーにしておくということでしょうか。 >逆に、Windows統合認証を使わない場合はこの値を(NONE)にします。最初の接続が早くなります。 Windows統合認証を使わない場合は、無条件で接続できちゃうんですか?! |
|
投稿日時: 2003-07-01 09:02
>Oracleのインスタンスの名前って何だろう???
Oracle SIDのことです。インスタンスという言葉は、Oracleのドキュメントでも「データベース」と同意か、「データベースインスタンス」として出てきていたと思います。 指定するのは、正確にはTNS Nameか、Oracle Nameだと思いますけど。。。 9iを使用されているのでしたら、Oracleから提供されている「Oracle Data Provider for .NET (ODP.NET)」を使用されてはいかがですか?(ダウンロードには登録とアンケートへの回答が必要) >>逆に、Windows統合認証を使わない場合はこの値を(NONE)にします。 >最初の接続が早くなります。 > >Windows統合認証を使わない場合は、無条件で接続できちゃうんですか?! 失礼、無条件で接続したりしません。 例えば、Windowsにwinuserというユーザがログオンしており、sqlplusコマンドの引数にオラクルのユーザ名orauserを指定したとします。このとき、SQLNET.AUTHENTICATION_SERVICESの値が(NTS)だと、引数のユーザを無視してwinuserというユーザにWindowsからもらったパスワードでコネクトしようとします。オラクルにwinuserが登録されていなければ拒否されますが、これに約5秒(私の環境での実測値)かかります。(NONE)にしておけば、はじめからorauserで接続に行くので、winuserがはじかれるまでの5秒ぶん、接続にかかる時間が短くなります。接続プールを有効にしていなければ、接続ごとに5秒余計に時間がかかります。 |
|
投稿日時: 2003-07-02 09:54
この辺のところは弱いところなので、
まだよくわかりませんが、 別の優先的な作業が入ってしまいました。 すぐにでも解決したいところなのですが、 また勉強して出直してきます。 |
1