目次
概要
ホームページ データベース mysql チュートリアル SQLServer 動的マスキングの詳細な紹介 (コード例)

SQLServer 動的マスキングの詳細な紹介 (コード例)

Feb 01, 2019 am 10:30 AM
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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

mdfファイルをsqlserverにインポートする方法 mdfファイルをsqlserverにインポートする方法 Apr 08, 2024 am 11:41 AM

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

指定されたオブジェクトが sqlserver データベースにすでに存在するという問題を解決する方法 指定されたオブジェクトが sqlserver データベースにすでに存在するという問題を解決する方法 Apr 05, 2024 pm 09:42 PM

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

SQLサーバーのポート番号を確認する方法 SQLサーバーのポート番号を確認する方法 Apr 05, 2024 pm 09:57 PM

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

sqlserver サービスを開始できない場合の対処方法 sqlserver サービスを開始できない場合の対処方法 Apr 05, 2024 pm 10:00 PM

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

sqlserverで誤って削除したデータベースを回復する方法 sqlserverで誤って削除したデータベースを回復する方法 Apr 05, 2024 pm 10:39 PM

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

SQLserver データベースはどこにありますか? SQLserver データベースはどこにありますか? Apr 05, 2024 pm 08:21 PM

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

Java接続のSqlServerエラーを解決する方法 Java接続のSqlServerエラーを解決する方法 May 01, 2023 am 09:22 AM

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

インストールが失敗した場合に sqlserver を削除するにはどうすればよいですか? インストールが失敗した場合に sqlserver を削除するにはどうすればよいですか? Apr 05, 2024 pm 11:27 PM

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

See all articles