- - PR -
ノータッチデプロイメントのOracle接続でSecurity error.
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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 ========================================================================== <ここまで> | ||||||||
|
投稿日時: 2004-10-13 11:54
ノータッチディプロイメントは本当にいい選択肢になりましたよね。
私も今のプロジェクトは当初予定のWebアプリからノータッチディプロイメントの Windowsアプリに顧客を説得して変更しました。 ところでおっしゃられている通り、セキュリティで引っかかっていますね。 これはOracleへのアクセスをするためには、より大きな(?)実行権を 与えてやらなければならないからだと思います。 Administrator権限でコントロールパネルの中の管理ツールを開くと Microsoft .NET Framework 1.1 Configurationというアイコンがあると 思います。それを実行してやります。 「マイコンピュータ」→「ランタイムセキュリティポリシー」→「コンピュータ」 →「コードグループ」→「All Code」 と開き、「All Code」を右クリックして新しいセキュリティポリシーを 対象のプラグラム用に作成してやるといいのですが、詳細は会社でないと ちょっと分かりかねます。 あと、ドットネットマガジンの2004/04月号でノータッチディプロイメントの 特集記事がありました。バックナンバーが未だにあるかわかりませんが。 | ||||||||
|
投稿日時: 2004-10-13 12:30
情報ありがとうございます。
無事にOracle接続できました!
とりあえず、すべてを許可するような設定にしてみました。 、ということは、一番最初はノータッチじゃないんでしょうか? クライアントを初期設定するときには.NET Frameworkの設定は必要で、それ以降はノータッチでアップデートしてくれる、ということでしょうか? | ||||||||
|
投稿日時: 2004-10-13 12:47
デフォルトの設定で出来ないことをやるなら初期設定をいじる必要があります。 どうしても初期設定をいじりたくないならセキュリティにひっかかる部分(この場合DBとのやりとり)をXML Web サービスにしてしまうといいです。 | ||||||||
|
投稿日時: 2004-10-13 12:55
siopさん、こんにちは。
いや、ノータッチの場合、クライアントから直接DBに接続するような事は、基本的にはやるべきじゃないでしょう。その代わり、XML Webサービス は使用できますので、DBアクセスはそっちに受け持たせます。 【追記】 おっと、カブった。 [ メッセージ編集済み 編集者: きくちゃん 編集日時 2004-10-13 12:58 ] | ||||||||
|
投稿日時: 2004-10-13 14:19
情報ありがとうございます。
その理由があれば教えてください。 ・セキュリティ的に? ・パフォーマンス的に? ・流行?
XML Webサービスが簡単に作れたら考えたいと思います。 書籍を調べたら、矢嶋聡著「VB.NETによる XML Webサービス開発」とか、dotNETマガジンの2003年7月号とかありました。 その他、見た方がいいっていう書籍、サイト等ありましたら教えてください。 | ||||||||
|
投稿日時: 2004-10-13 15:28
セキュリティ的にです。例外にもばっちり System.Security.SecurityException: Security error. と書いてあるので。
とりあえず動けばいいという程度でしたらVisual Studioを使えば簡単にできます。 実際に仕事で使えるようには…システム関係の仕事したことないのでわかりません(^^; | ||||||||
|
投稿日時: 2004-10-13 15:28
セキュリティ的にです。例外にもばっちり System.Security.SecurityException: Security error. と書いてあるので。
とりあえず動けばいいという程度でしたらVisual Studioを使えば簡単にできます。 実際に仕事で使えるようには…システム関係の仕事したことないのでわかりません(^^; |