Poti folosi "perechea" de comenzi "EXECUTE AS" - "REVERT". Cu "EXECUTE AS" setezi alt context de executie - de exemplu baza de date va fi creata de catre "cine trebuie"
. Cu "REVERT" revii la starea initiala. De exemplu, presupunand ca esti un user "obisnuit", fara dreptul de a crea baze de date:
SELECT
SUSER_SNAME(), USER_NAME()
USE
master
EXECUTE
AS LOGIN = 'login1'
SELECT
SUSER_SNAME(), USER_NAME()
CREATE
DATABASE test
REVERT;
- login1 este "dbcreator"
Cu SELECT SUSER_SNAME(), USER_NAME() "vezi" contextul de executie curent.
Inainte de "EXECUTE AS", userului/loginului tau trebuie sa-i "dai" permisiunea de "IMPERSONATE" pentru "login1"