0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure SQL Database で動的データマスク(DDM)を試してみた

Posted at

私は、動的データマスクを、個人データや機密データを保護する目的で、データベースにアクセスするユーザーやロールに対してデータをマスクして表示する技術だと理解しています。今までインフラや CI/CD 周辺の仕事が多かったので、知識としては知っていた動的データマスクを実際に試してみました。

Azure SQL Database Free のクエリーエディターでテストデータを作成

sql
CREATE SCHEMA Data;
GO

CREATE TABLE Data.Membership (
    MemberID INT IDENTITY(1, 1) NOT NULL PRIMARY KEY CLUSTERED,
    FirstName VARCHAR(100) MASKED WITH (FUNCTION = 'partial(1, "xxxxx", 1)') NULL,
    LastName VARCHAR(100) NOT NULL,
    Phone VARCHAR(12) MASKED WITH (FUNCTION = 'default()') NULL,
    Email VARCHAR(100) MASKED WITH (FUNCTION = 'email()') NOT NULL,
    DiscountCode SMALLINT MASKED WITH (FUNCTION = 'random(1, 100)') NULL
);
GO

INSERT INTO Data.Membership (FirstName, LastName, Phone, Email, DiscountCode)
VALUES
('Roberto', 'Tamburello', '555.123.4567', 'RTamburello@contoso.com', 10),
('Janice', 'Galvin', '555.123.4568', 'JGalvin@contoso.com.co', 5),
('Shakti', 'Menon', '555.123.4570', 'SMenon@contoso.net', 50),
('Zheng', 'Mu', '555.123.4569', 'ZMu@contoso.net', 40);
GO

MASKED WITH (FNCTION = '') のマスクルールを理解

partial(1, "xxxxx", 1)

最初と最後の文字以外を x でマスクする。

default()

全て x でマスクする。

email()

Email 形式でマスクする。

random(1, 100)

1 から 100 の間の数値でランダム表示する。

まずは管理者でマスクなし表示

sql
SELECT * FROM Data.Membership;

azure-sql-database-01.png

マスク表示用ユーザーを作成

sql
CREATE USER MaskingTestUser WITHOUT LOGIN;

GRANT SELECT ON SCHEMA::Data TO MaskingTestUser;

マスク表示を試す

sql
EXECUTE AS USER = 'MaskingTestUser';

SELECT * FROM Data.Membership;

REVERT;

azure-sql-database-02.png

Azure ポータルから動的データマスクの状態を確認

azure-sql-database-03.png

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?