- PR -

ノータッチデプロイメントのOracle接続でSecurity error.

投稿者投稿内容
siop
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 67
投稿日時: 2004-10-13 11:27
VB.NetとOracleで販売管理システムの開発を検討しています。
画面操作性の面から、Windowsアプリのノータッチデプロイメントの予定です。

簡単なプログラムで試しているのですが、サーバー上に配置してノータッチデプロイメントとして起動すると、Security errorになってしまいます。
Oracleに接続するだけの、本当に単純なプログラムです。

Oracleに接続するロジックをコメントアウトすればエラーにならないので、Oracleとのやりとりを行っているロジックが関係していると思われます。

どうすればエラーにならずに動かせるのでしょうか?

・Oracleライブラリの参照設定の方法?
・IISのセキュリティ設定?
・.NET Frameworkのセキュリティ設定?

<以下、エラー内容>
==========================================================================
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Security.SecurityException: Security error.
at oratest.Form1.Button1_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
==========================================================================
<ここまで>

<以下、ロジック>
==========================================================================
Imports Oracle.DataAccess.Client
Public Class Form1
Inherits System.Windows.Forms.Form

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim str As String
Dim user As String
Dim pass As String
Dim sid As String
Dim oraConn As OracleConnection = Nothing

user = "scott"
pass = "tiger"
sid = "hanbai"
str = New String("User Id=" + user + ";Password=" + pass + ";Data Source=" + sid)

oraConn = New OracleConnection(str)
oraConn.Open()

MsgBox("接続しました。")
End Sub
End Class
==========================================================================
<ここまで>
べーちゃん
大ベテラン
会議室デビュー日: 2002/07/21
投稿数: 121
投稿日時: 2004-10-13 11:54
ノータッチディプロイメントは本当にいい選択肢になりましたよね。
私も今のプロジェクトは当初予定のWebアプリからノータッチディプロイメントの
Windowsアプリに顧客を説得して変更しました。

ところでおっしゃられている通り、セキュリティで引っかかっていますね。
これはOracleへのアクセスをするためには、より大きな(?)実行権を
与えてやらなければならないからだと思います。

Administrator権限でコントロールパネルの中の管理ツールを開くと
Microsoft .NET Framework 1.1 Configurationというアイコンがあると
思います。それを実行してやります。

「マイコンピュータ」→「ランタイムセキュリティポリシー」→「コンピュータ」
→「コードグループ」→「All Code」
と開き、「All Code」を右クリックして新しいセキュリティポリシーを
対象のプラグラム用に作成してやるといいのですが、詳細は会社でないと
ちょっと分かりかねます。

あと、ドットネットマガジンの2004/04月号でノータッチディプロイメントの
特集記事がありました。バックナンバーが未だにあるかわかりませんが。
siop
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 67
投稿日時: 2004-10-13 12:30
情報ありがとうございます。
無事にOracle接続できました!
引用:

「マイコンピュータ」→「ランタイムセキュリティポリシー」→「コンピュータ」
→「コードグループ」→「All Code」


とりあえず、すべてを許可するような設定にしてみました。

、ということは、一番最初はノータッチじゃないんでしょうか?
クライアントを初期設定するときには.NET Frameworkの設定は必要で、それ以降はノータッチでアップデートしてくれる、ということでしょうか?
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2004-10-13 12:47
引用:

一番最初はノータッチじゃないんでしょうか?
クライアントを初期設定するときには.NET Frameworkの設定は必要で、それ以降はノータッチでアップデートしてくれる、ということでしょうか?


デフォルトの設定で出来ないことをやるなら初期設定をいじる必要があります。
どうしても初期設定をいじりたくないならセキュリティにひっかかる部分(この場合DBとのやりとり)をXML Web サービスにしてしまうといいです。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-10-13 12:55
siopさん、こんにちは。

引用:

、ということは、一番最初はノータッチじゃないんでしょうか?


いや、ノータッチの場合、クライアントから直接DBに接続するような事は、基本的にはやるべきじゃないでしょう。その代わり、XML Webサービス は使用できますので、DBアクセスはそっちに受け持たせます。

【追記】
おっと、カブった。


[ メッセージ編集済み 編集者: きくちゃん 編集日時 2004-10-13 12:58 ]
siop
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 67
投稿日時: 2004-10-13 14:19
情報ありがとうございます。
引用:

いや、ノータッチの場合、クライアントから直接DBに接続するような事は、基本的にはやるべきじゃないでしょう。


その理由があれば教えてください。
・セキュリティ的に?
・パフォーマンス的に?
・流行?

引用:

その代わり、XML Webサービス は使用できますので、DBアクセスはそっちに受け持たせます。


XML Webサービスが簡単に作れたら考えたいと思います。
書籍を調べたら、矢嶋聡著「VB.NETによる XML Webサービス開発」とか、dotNETマガジンの2003年7月号とかありました。

その他、見た方がいいっていう書籍、サイト等ありましたら教えてください。
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2004-10-13 15:28
引用:

その理由があれば教えてください。
・セキュリティ的に?
・パフォーマンス的に?
・流行?


セキュリティ的にです。例外にもばっちり
System.Security.SecurityException: Security error.
と書いてあるので。

引用:

XML Webサービスが簡単に作れたら考えたいと思います。
書籍を調べたら、矢嶋聡著「VB.NETによる XML Webサービス開発」とか、dotNETマガジンの2003年7月号とかありました。

その他、見た方がいいっていう書籍、サイト等ありましたら教えてください。


とりあえず動けばいいという程度でしたらVisual Studioを使えば簡単にできます。
実際に仕事で使えるようには…システム関係の仕事したことないのでわかりません(^^;
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2004-10-13 15:28
引用:

その理由があれば教えてください。
・セキュリティ的に?
・パフォーマンス的に?
・流行?


セキュリティ的にです。例外にもばっちり
System.Security.SecurityException: Security error.
と書いてあるので。

引用:

XML Webサービスが簡単に作れたら考えたいと思います。
書籍を調べたら、矢嶋聡著「VB.NETによる XML Webサービス開発」とか、dotNETマガジンの2003年7月号とかありました。

その他、見た方がいいっていう書籍、サイト等ありましたら教えてください。


とりあえず動けばいいという程度でしたらVisual Studioを使えば簡単にできます。
実際に仕事で使えるようには…システム関係の仕事したことないのでわかりません(^^;

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