Aşağıdaki senaryoyu düşünün
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');
Bir noktada, test
veritabanında bazı faaliyetleri gerçekleştiren bir ETL süreci yazılır .
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 öğesinin Customer
tabloya (ve kesinlikle SensitiveData
sütuna değil ) izinleri olmamalıdır , bu nedenle bunlar yukarıda açıkça reddedilmiştir.
ETL işlemi kesilir, dbo.StagingTable
bu nedenle ALTER
tablo izinleri verilir .
Bu, bir güvenlik denetimi sırasında işaretlenir. Bu senaryo ne kadar tehlikeli?