Recent Posts

Archives

Categories

Meta

Impersonate user

Ez a technika, arra szolgál, hogy a tényleges user-ek csak minimális jogokat kapjanak. Például csak tároltakon keresztül végezhetnek műveleteket.

Ez esetben a tároltakhoz rendeljük az impersonate usert (példában a Imp_TruncateMe)

-- Create table to truncate
CREATE TABLE TruncateMe (Id int NOT NULL IDENTITY(1,1))
GO
-- User that has permission to truncate the table
CREATE USER Imp_TruncateMe WITHOUT LOGIN
-- Grant user ALTER permission so it can truncate the table
GRANT ALTER ON TruncateMe TO Imp_TruncateMe
GO
-- Create procedure to do the truncate impersonating Imp_TruncateMe
CREATE PROCEDURE dbo.Truncate_TruncateMe
WITH EXECUTE AS 'Imp_TruncateMe'
AS
TRUNCATE TABLE TruncateMe
GO

Most csak a tároltra kell jogot adni a valós user(ek)nek. Nincs szükség a táblára jogot adni.

Itt jön képbe a TRUSTWORTHY adatbázis flag. Ha ezt ON-ba állítjuk, akkor a user-ünk a hozzátársult impersonate user minden jogát megkapja. Az alábbi linken további példákat találhatunk:

http://sqlstudies.com/2014/02/26/impersonating-a-server-level-permissions/