none
アプリケーションロールだけからアクセスできるように設定できますか。 RRS feed

  • 質問

  •  

    すいません、初心者です。

    よろしくお願いします。

    あるデータベースを配布したいのですが、それをアプリケーションからだけ

    利用できるように設定することはできるのでしょうか。

     

    データベースを移植すると、そのコンピュータの所有者のものになってしまいますよね。

    方法があれば教えてください。

     

    2008年11月1日 17:20

回答

  • 以下、同じ方法についてケース別に列挙します。

    ・アプリケーションを実行するアカウントは、コンピュータの所有者のアカウント(アプリケーション実行用のユーザは作成しない)場合

     Windows・SQL混合認証にする

     データベースのセキュリティ設定で、Builtin\Adminのインスタンスログインを拒否に設定する

     SQL認証のユーザを作成しインスタンスログイン、DBログイン、必要な権限を設定する

     アプリケーションから作成したユーザでログインする

     

    ・ユーザがログインできない、アプリケーション実行用の専用ユーザを作成する(AD配下の場合?)

     Builtin\Adminのインスタンスログインを無効にする

     アプリケーション専用ユーザの設定をする

     アプリケーションからは専用ユーザでアクセス

     

    これで、実現可能だと思います。

    2008年11月1日 17:50
  • こんにちは。

    人事データなど、管理者にデータ内容を見られたくないというような理由なら、データを暗号化するのも良いと思います。
    2008年11月3日 8:58
  • mdfの中身を直接見えないようにしたいということであれば、以下を参考にしてみて下さい。

     

    mdf配布での参照制限
    http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=3912851&SiteID=7

    2008年11月10日 5:07
  •  窓際族 さんからの引用

     

    使用しているのは、SQLServer2005Expressです。

    データベースをアプリケーションにつけて、他人のパソコンにインストールさせたいのです。

    ただし、インストール後、配布したアプリケーションによる以外の方法でデータベースを利用して

    ほしくないのです。

     別のパソコンにインストールしてみたところ、データベースの所有者が、そのパソコンになって、

    自由に変更設定できるではありませんか。

     

    >Windows・SQL混合認証にする

    これはサーバーの設定ですよね。他人のパソコンなのでどうすることもできません。

     

    >アプリケーション実行用の専用ユーザを作成する

    これがよくわかりません。

    dboを削除したり、変更したりしようとすると拒否されてしまいます。

     

    肝心な列だけを暗号化するしか手はないのでしょうか。

     

    SQL Server 2005 Express EditionがインストールされているPCにデータファイル(*.MDFファイル)を配布する訳ではなく、

    アプリケーションと同時にSQL Server 2005 Express Editionも配布して、インストールを行うという事と考えていいですね。

    それでしたら、SQL Serverのインストール時に設定ファイルを利用してインストールすることが出来ます。

     

    >Windows・SQL混合認証にする

    SQL Server 2005 Express Editionをサイレントインストール時に設定ファイルを使用しますが、その設定ファイルで設定可能です。

    詳細は以下のサイトを参照してください。

    http://msdn.microsoft.com/ja-jp/library/ms144259(SQL.90).aspx

     

    補足ですが、デフォルトのインスタンス名であるSQLExpressはPCの使用状況により、すでに使われている可能性がありますので、設定ファイルで別の名前に変更した方が良いでしょう。

     

    おそらくですが、SQL Server 2005 Express Editonのインストール後にアプリケーションの初期設定を行うと思いますが、その時に野良さんが書かれた、

     野良 さんからの引用

    ・アプリケーションを実行するアカウントは、コンピュータの所有者のアカウント(アプリケーション実行用のユーザは作成しない)場合

     Windows・SQL混合認証にする

     データベースのセキュリティ設定で、Builtin\Adminのインスタンスログインを拒否に設定する

     SQL認証のユーザを作成しインスタンスログイン、DBログイン、必要な権限を設定する

     アプリケーションから作成したユーザでログインする

     

    を実行すれば良いと思います。

    (実際には初期設定時に、これらを処理するクエリーを実行する事になると思います)

     

    自分の場合はMSDEでしたが、同様な事は行ったことはありますので、実現は可能だと思います。

    もし不明な点があれば質問してください。

    2008年11月11日 14:44

すべての返信

  • 以下、同じ方法についてケース別に列挙します。

    ・アプリケーションを実行するアカウントは、コンピュータの所有者のアカウント(アプリケーション実行用のユーザは作成しない)場合

     Windows・SQL混合認証にする

     データベースのセキュリティ設定で、Builtin\Adminのインスタンスログインを拒否に設定する

     SQL認証のユーザを作成しインスタンスログイン、DBログイン、必要な権限を設定する

     アプリケーションから作成したユーザでログインする

     

    ・ユーザがログインできない、アプリケーション実行用の専用ユーザを作成する(AD配下の場合?)

     Builtin\Adminのインスタンスログインを無効にする

     アプリケーション専用ユーザの設定をする

     アプリケーションからは専用ユーザでアクセス

     

    これで、実現可能だと思います。

    2008年11月1日 17:50
  • こんにちは。

    人事データなど、管理者にデータ内容を見られたくないというような理由なら、データを暗号化するのも良いと思います。
    2008年11月3日 8:58
  • ご丁寧な説明ありがとうございます。

     

    使用しているのは、SQLServer2005Expressです。

    データベースをアプリケーションにつけて、他人のパソコンにインストールさせたいのです。

    ただし、インストール後、配布したアプリケーションによる以外の方法でデータベースを利用して

    ほしくないのです。

     別のパソコンにインストールしてみたところ、データベースの所有者が、そのパソコンになって、

    自由に変更設定できるではありませんか。

     

    >Windows・SQL混合認証にする

    これはサーバーの設定ですよね。他人のパソコンなのでどうすることもできません。

     

    >アプリケーション実行用の専用ユーザを作成する

    これがよくわかりません。

    dboを削除したり、変更したりしようとすると拒否されてしまいます。

     

    肝心な列だけを暗号化するしか手はないのでしょうか。

     

    2008年11月10日 4:26
  • mdfの中身を直接見えないようにしたいということであれば、以下を参考にしてみて下さい。

     

    mdf配布での参照制限
    http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=3912851&SiteID=7

    2008年11月10日 5:07
  •  窓際族 さんからの引用

     

    使用しているのは、SQLServer2005Expressです。

    データベースをアプリケーションにつけて、他人のパソコンにインストールさせたいのです。

    ただし、インストール後、配布したアプリケーションによる以外の方法でデータベースを利用して

    ほしくないのです。

     別のパソコンにインストールしてみたところ、データベースの所有者が、そのパソコンになって、

    自由に変更設定できるではありませんか。

     

    >Windows・SQL混合認証にする

    これはサーバーの設定ですよね。他人のパソコンなのでどうすることもできません。

     

    >アプリケーション実行用の専用ユーザを作成する

    これがよくわかりません。

    dboを削除したり、変更したりしようとすると拒否されてしまいます。

     

    肝心な列だけを暗号化するしか手はないのでしょうか。

     

    SQL Server 2005 Express EditionがインストールされているPCにデータファイル(*.MDFファイル)を配布する訳ではなく、

    アプリケーションと同時にSQL Server 2005 Express Editionも配布して、インストールを行うという事と考えていいですね。

    それでしたら、SQL Serverのインストール時に設定ファイルを利用してインストールすることが出来ます。

     

    >Windows・SQL混合認証にする

    SQL Server 2005 Express Editionをサイレントインストール時に設定ファイルを使用しますが、その設定ファイルで設定可能です。

    詳細は以下のサイトを参照してください。

    http://msdn.microsoft.com/ja-jp/library/ms144259(SQL.90).aspx

     

    補足ですが、デフォルトのインスタンス名であるSQLExpressはPCの使用状況により、すでに使われている可能性がありますので、設定ファイルで別の名前に変更した方が良いでしょう。

     

    おそらくですが、SQL Server 2005 Express Editonのインストール後にアプリケーションの初期設定を行うと思いますが、その時に野良さんが書かれた、

     野良 さんからの引用

    ・アプリケーションを実行するアカウントは、コンピュータの所有者のアカウント(アプリケーション実行用のユーザは作成しない)場合

     Windows・SQL混合認証にする

     データベースのセキュリティ設定で、Builtin\Adminのインスタンスログインを拒否に設定する

     SQL認証のユーザを作成しインスタンスログイン、DBログイン、必要な権限を設定する

     アプリケーションから作成したユーザでログインする

     

    を実行すれば良いと思います。

    (実際には初期設定時に、これらを処理するクエリーを実行する事になると思います)

     

    自分の場合はMSDEでしたが、同様な事は行ったことはありますので、実現は可能だと思います。

    もし不明な点があれば質問してください。

    2008年11月11日 14:44
  • こんにちは。中川俊輔です。

     

    皆様、回答ありがとうございます。

     

    窓際族さん、フォーラムのご利用ありがとうございます。

    その後いかがでしょうか?

    勝手ながら、有用な情報と思われる回答へ回答済みチェックをつけさせていただきました。

    追加の質問等ありましたら、ぜひ投稿してみてください。

     

    今後ともフォーラムをよろしくお願いします。

    それでは!

    2008年11月21日 9:06