SQLServer 動的マスキングの詳細な紹介 (コード例)
この記事では、SQLServer の動的マスキングについて詳しく説明します (コード例)。必要な方は参考にしてください。
ダイナミック データ マスキング (DDM) は、SQL Server 2016 で導入された新機能です。その目的は、許可なく人々が一部の個人情報を閲覧することを制限することです。管理者ユーザーはどのフィールドをマスクする必要があるかを決定できますが、アプリケーション コードを変更せずにフィールドをマスクするにはどうすればよいでしょうか?データへのアクセス方法に関係なく、一貫性があることを保証することも必要です。
これは、Azure SQL Database で初めて導入された機能であり、クラウド上のユーザーによってテストされており、オンプレミス製品に移行されました。他の多くの新機能もこのアプローチ (クラウドローカル) に従うと思います。
以前の行レベルのデータ セキュリティと同様に、これらはデータ セキュリティ関連のコンテンツであることに注意してください (推奨コース: MySQL チュートリアル )
Columnデータのマスキング
まず、一部のデータのマスクされたバージョンを含むテーブルを作成します。テーブル定義から始まるフィールドの 1 つにマスクを追加します。これを行う方法は、データ型の後、NULL オプションとデフォルト オプションの前に、関数を指定する括弧内に FUNCTION = " を含めて「mask with()」形式を使用することです。引用符内で、 CREATE TABLE ステートメントは次のとおりです。
CREATE TABLE MyTable ( MySSN VARCHAR (10) MASKED WITH (FUNCTION = 'default()') DEFAULT ('0000000000' ) , MyName VARCHAR (200) DEFAULT ( ' ') , MyEmail VARCHAR (250) DEFAULT ( '') , MyInt int ) GO INSERT dbo. MyTable ( MySSN , MyName, MyEmail , MyInt) VALUES ( '1234567890', 'Steve Jones', 'SomeSteve@SomeDomain.com', 10 )
作成者がこのテーブルをクエリすると、特権ユーザー (db_owner または sysadmin ロール) を持つユーザーには、そのテーブルが挿入されたときにすべてのデータが表示されます。マスクされたデータを作成します。もちろん、テーブル内のデータを表示するには、通常の SQL Server 権限を付与する必要があります。
最初の列には、データが存在する場所に x のみが表示されます。これにより、目的の結果が得られます。非特権ユーザーからのデータは、非特権ユーザーに返されるまで変更されないことに注意してください。
テーブルには、次のようなカスタム マスク形式を定義できます。メール アドレスの表示内容と乱数マスクを制御できるようになります。これらの問題については、別の記事で詳しく説明します。
これで、メール MyEmail などの別の列にマスクを追加できるようになります。列では、メール マスクを使用できます。その形式、具体的なコードは次のとおりです。
CREATE USER mytest WITHOUT LOGIN GRANT SELECT ON mytable TO mytest
その後、クエリの結果は次のようになります。
You複数の合計列をマスクすることもできます
ALTER TABLE dbo.MyTable ALTER COLUMN MyEmail VARCHAR(250) MASKED WITH (FUNCTION='email()') GO
クエリ結果は次のとおりです:
ご覧のとおり、異なる行から異なるマスクが取得されます。であり、各マスクは特定の行データに適用されます。
SQL Server 2016 には新しい DDM 権限があります。 UNMASK 権限は、他の権限と同様に付与されます。これがどのように機能するかを見てみましょう。
# #同様の結果になります。##NewTester ユーザーの場合と同じ方法でデータが表示され、すべてのデータが「マスクされていない」ことがわかります。 "
ただし、欠点もあります。 UNMASK 権限はデータベース全体でユーザーに付与されます。テーブルまたは列ごとの粒度はありません。ユーザーが UNMASK を持っている場合、データベースに保存されているテーブル内のすべてのデータを SELECT 権限で表示できます。 Newtest を使用して最初のテーブルをクエリすると、これを確認できます。
マスクを削除します
コードは次のとおりです:
CREATE TABLE MySecondTable ( MyEmail VARCHAR( 250) MASKED WITH (FUNCTION= 'email()') , MySSN VARCHAR (10) MASKED WITH (FUNCTION ='default()') , MyID INT MASKED WITH (FUNCTION ='random(1,4)') )GOINSERT MySecondTable VALUES ( 'myname@mydomain.com', '1234567890', 100 ) , ( 'abrother@mycorp.com' , '0123456789' , 555) , ( 'somesister@somecompany.org' , '9876543210' , 999)
MySSN 列のデータはマスクされていませんが、MyEmail と MyID のデータは依然としてマスクされています
概要
動的データ マスキングは、特権のないユーザーからデータを簡単に保護できるように設計された優れた新機能です。これは、アプリケーション コードを変更することなくデータベースに実装できるため、最小限のコストと労力で機密データをアプリケーション ユーザーからマスクすることができます。また、これは真のセキュリティ機能ではないことにも注意してください。ディスクとテーブルに保存されているデータはまったく変更されません。これは依然としてプレーン テキスト データであり、ユーザーがシステムにクエリを実行できる場合でも、データをクエリしてその値を発見できる可能性があります。
いずれにせよ、この機能は、特にデータの復号化が必要なシステムにとって、間違いなく役立ちます。もちろん機能も17から大きく進化していますので、また機会があれば紹介していきたいと思います。
以上がSQLServer 動的マスキングの詳細な紹介 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











インポート手順は次のとおりです。 MDF ファイルを SQL Server のデータ ディレクトリ (通常は C:\Program Files\Microsoft SQL Server\MSSQL\DATA) にコピーします。 SQL Server Management Studio (SSMS) でデータベースを開き、[アタッチ] を選択します。 「追加」ボタンをクリックして、MDF ファイルを選択します。データベース名を確認し、「OK」ボタンをクリックします。

SQL Server データベースに既に存在する同じ名前のオブジェクトについては、次の手順を実行する必要があります。 オブジェクトの種類 (テーブル、ビュー、ストアド プロシージャ) を確認します。 IF NOT EXISTS を使用すると、オブジェクトが空の場合に作成をスキップできます。オブジェクトにデータがある場合は、別の名前を使用するか、構造を変更してください。既存のオブジェクトを削除するには、DROP を使用します (注意してください。バックアップを推奨します)。スキーマの変更をチェックして、削除または名前変更されたオブジェクトへの参照がないことを確認します。

SQL Server のポート番号を表示するには: SSMS を開いてサーバーに接続します。オブジェクト エクスプローラーでサーバー名を見つけ、右クリックして [プロパティ] を選択します。 「接続」タブで、「TCP ポート」フィールドを表示します。

SQL Server サービスの開始に失敗した場合の解決手順は次のとおりです。 エラー ログを確認して、根本原因を特定します。サービス アカウントにサービスを開始する権限があることを確認してください。依存関係サービスが実行されているかどうかを確認します。ウイルス対策ソフトウェアを無効にします。 SQL Server のインストールを修復します。修復が機能しない場合は、SQL Server を再インストールします。

SQL Server データベースを誤って削除した場合は、次の手順を実行して回復できます: データベース アクティビティの停止、ログ ファイルのバックアップ、データベース ログの確認、回復オプション: バックアップからの復元、トランザクション ログからの復元、DBCC CHECKDB の使用、3 番目の使用パーティーツール。データ損失を防ぐために、データベースを定期的にバックアップし、トランザクション ログを有効にしてください。

SQL Server データベース ファイルは、通常、次のデフォルトの場所に保存されます。 Windows: C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data データベース ファイルの場所は、データベース ファイル パスを変更することでカスタマイズできます。設定。

今回問題が判明したのは、これまで使用したことのない SqlServer データベースを使用していたことですが、問題は深刻ではありませんでした。要件文書の手順に従って SqlServer に接続した後、SpringBoot プロジェクトを開始すると、次のようなエラーが発生しました: 最初は SqlServer 接続だと思いました。問題があったので、データベースを確認しに行きましたが、すべてが正常であることがわかりました。最初に同僚にそのような問題があるかどうか尋ねたところ、彼らがそうでなかったので、Baidu プログラミングに取り組むという私の最も得意な部分を始めました。私が解決し始めた具体的なエラー メッセージは次のとおりでした。そこで、Baidu のエラー レポートを開始しました: ERRORc.a.d.p.DruidDataSource$CreateCo

SQL Server のインストールが失敗した場合は、次の手順に従ってクリーンアップできます。 SQL Server をアンインストールする レジストリ キーを削除する ファイルとフォルダーを削除する コンピューターを再起動する
