none
テーブルのフィールドのパスワード表記 RRS feed

  • 質問

  • 環境:SQLServer2005 Windows2000/2003Server

     

    初めまして。

    SLQServer2005の初心者です。

    宜しくお願い致します。

     

    質問ですが、SQLServerのテーブルのフィールドをパスワード表記にしたいのです。

    Accessでは、テーブルデザイン時の定型入力で、パスワードという項目があり、

    指定すると「****」表記となります。

    SQLServer2005では、パスワード表記がありますか?

     

    有知識者の方、ご享受宜しくお願い致します。

    2007年6月6日 2:35

回答

  • 確かにAccessの様に実現はできないみたいですね。

     

    手法は暗号化ですね!

    当方WorkGroupEdhitionです・・・。

    教えて頂いたURLを見て勉強してみます。

     

    提言してくださった苦肉の策も中々使えそうだと感じます!

    色々手法を練ってみます!

     

    長く付き合ってくださって本当にありがとうございました!

    2007年6月8日 2:56

すべての返信

  • SQLServer 2005 テーブルのフィールドをパスワード表記にしたいとありますが、

    例えばセキュリティポリシー上、権限の無いユーザからは、select 文 を実行時等でパスワード表記にしたい

    列データを画面に表示したくないということでしょうか?

    2007年6月6日 4:47
  • お返事ありがとうございます。

     

    Accessのフィールドパスワード表記の様に、

    SQLServerのテーブルのフィールドの値自体を***のようなパスワード表記に変えたいのです。

    もしも誰かがSQLServerのテーブルを参照時に、パスワードがむき出しであれば、簡単に盗む事ができてしまうので。

     

    Accessは簡単なのに~~~!!!!と、悩んでおります。

    2007年6月7日 10:37
  • Accessみたいに簡単に出来るかと言えば、私の知っている限りでは出来ないような気がします。

    Accessよりもさらにセキュリティを強化した方法はあります。

    暗号化機能です。

     

    ● 出来ること

     権限(証明書)が無いユーザが、Select 文 、Management Studio でデータを参照しても、

     画面にデータが表示されない。

     

    ただ、この機能はEdition によっては使用出来ません。

    下記のURLを参照して見てください。

     

    SQL Server 2005 自習書シリーズ 管理編 No.10 (SQL Server 2005 の暗号化機能)

    < http://download.microsoft.com/download/7/b/7/7b7872d1-7890-4950-93d7-32c4d8080b0d/SQL2005_security.doc >

     

    苦肉の策としては、パスワードのみ別テーブルにしてアクセス権限を厳しくするとかでしょうか。

    2007年6月7日 11:33
  •  米田です。

     

     SQL Serverでは、入出力は、他人任せ(アクセス他の各アプリしだい)なので、意味がありません。

    このため、通常パスワードをフィールドに保存するのは悪い手法扱いになります。

     

     型としては、サンプルが提供されているのですが、パスワード+Saltをハッシュしたものを保存することで、安全を保とうと努めます。

    但し、2007年現在では、サンプルのままだと、不足で、

    ・SHA1より強力なアルゴリズム

    ・パスワードとSaltを分離しておく(せめて別テーブルに等)

    が要求されることがあります。

     SQL Server 2005のAdventureWorksについては、次の通り

    http://msdn2.microsoft.com/ja-jp/library/ms124714(SQL.90).aspx
    Contact テーブル (AdventureWorks)
    >PasswordHash varchar(40) NOT NULL 電子メール アカウントのパスワード。
    >PasswordSalt varchar(10) NOT NULL パスワードがハッシュ処理される前にパスワード文字列に連結されるランダムな値。

     プログラムや解説は、SQL Server 2000のものですが、以下の記事とその周辺が参考になると思います。

    http://www.microsoft.com/japan/msdn/security/guidance/secmod17.mspx
    SQL Server 2000 でフォーム認証を使用する方法
    http://www.microsoft.com/japan/msdn/net/security/SecNetHT03.aspx
    セキュリティ保護された ASP.NET アプリケーションの構築 : SQL Server 2000 でフォーム認証を使用する方法


     

     

     

    2007年6月7日 12:23
  • ご返信ありがとうございます。

    なるほど。パスワードをフィールドに保存するのは、確かに悪い手法ですね。

    Accessでも***表記になっても、その表記を解除すれば、パスワードがむき出しですね。

     

    ハッシュ化したもので保存ですね。

    サンプルを見て一通り勉強してみます。

     

    今はパスワード自体を、DBに保存する事自体が問題と思ってきました。

    暗号化等手法は色々とありますが、選定してみます。

     

    因みに遅くなりましたが、VisualBasic2005で開発しております。

    そのVisualBasic2005にも、プログラム内部で保存しておける、リソース変数があるので、

    利用できるか検討してみます。

     

     

    URLまで頂きありがとうございました!

    2007年6月8日 2:54
  • 確かにAccessの様に実現はできないみたいですね。

     

    手法は暗号化ですね!

    当方WorkGroupEdhitionです・・・。

    教えて頂いたURLを見て勉強してみます。

     

    提言してくださった苦肉の策も中々使えそうだと感じます!

    色々手法を練ってみます!

     

    長く付き合ってくださって本当にありがとうございました!

    2007年6月8日 2:56