Bayangkan skenario berikut
CREATE DATABASE test
GO
USE test;
CREATE TABLE dbo.Customer
(
CustomerId INT,
Email VARCHAR(100),
SensitiveData VARCHAR(20)
);
INSERT INTO dbo.Customer
VALUES (1,'abc@foo.com','12346789');
Pada titik tertentu proses ETL ditulis yang melakukan beberapa kegiatan dalam test
database.
CREATE USER etlUser WITHOUT LOGIN; /*For demo purposes*/
CREATE TABLE dbo.StagingTable
(
StagingTableId INT,
SomeData VARCHAR(100),
)
GRANT UPDATE,INSERT,DELETE,SELECT,ALTER ON dbo.StagingTable TO etlUser;
DENY SELECT ON dbo.Customer TO etlUser;
DENY SELECT ON dbo.Customer (SensitiveData) TO etlUser; /*For good measure*/
EtlUser seharusnya tidak memiliki izin ke Customer
tabel (dan tentu saja tidak ke SensitiveData
kolom) sehingga ini secara eksplisit ditolak di atas.
Proses ETL memotong dbo.StagingTable
sehingga diberikan ALTER
izin tabel itu.
Ini ditandai selama audit keamanan. Seberapa berbahaya skenario ini?