sql >> データベース >  >> RDS >> Sqlserver

SQL Server 対称キー暗号化を解読できるユーザーを制御する方法

    2 つの選択肢があります:

    <オール> <リ>

    暗号制御。これにより、パスワードを知っているユーザーのみがデータを復号化できます。欠点は、ユーザーが入力する必要があることです データにアクセスするたびに復号化パスワード。レポートには、レポートを実行しているユーザーがデータ アクセス パスワードを入力する Password パラメータが含まれている必要があります。アプリケーションは、ユーザーにパスワードを要求する必要があります。 Web サイトは、訪問者にパスワードを要求する必要があります。などなど

    <リ>

    アクセス制御。データは、SQL Server 自体がアクセスできるキーで暗号化されます (最終的に、暗号化チェーンはサービス マスター キーまで続き、これは DPAPI を使用して暗号化されます)。これは、SELECT を許可または拒否すること以外に、より大きな保護を提供しません:is access 制御であり、暗号制御ではありません。このようなスキームは、偶発的なメディアの紛失 (誰かがデータベースを含むディスクを見つけたり、データベースを含むラップトップを紛失した場合) からのみ保護します。 Transparent Data Encryption を使用して、まったく同じことを実現できます。 またはファイル レベルの暗号化 (BitLocker ).

    一般的なデータ暗号化のシナリオは、対称キーでデータを暗号化し、非対称キー (通常は証明書の秘密キー) で対称キーを暗号化することです。次に、非対称キーはパスワードで暗号化され、データにアクセスしようとするときにこのパスワードを提示する必要があります。この 2 レベルの間接化の主な理由は、パスワードの変更です。パスワードまたは秘密鍵が危険にさらされると、対称鍵が別の非対称鍵で再暗号化されるか、非対称鍵が別のパスワードで再暗号化されます。この方法でアクセス パスワードが変更され、すべてのデータを再暗号化する必要はありません .アクセスが対称キーに直接許可される場合、パスワードの侵害により、すべてのデータの再暗号化が必要になる可能性があります 、可能なテラバイトのデータ。

    私が提示した 2 つのシナリオの違いは、非対称キーもデータベース マスター キーで暗号化されているかどうかです。ケース 1) そうでない、ケース 2) ある。これはすべて、暗号化階層 で説明されています .




    1. Mysql-2つの列がt1の場合と同じであるt2行のカウントでt1を更新します

    2. T-SQL での丸めミリ秒

    3. hibernatejavamysqlで@Lobを保存するときにエラーが発生しました

    4. SQLServerストアドプロシージャをPostgreSQLストアドプロシージャに変換します