T-SQL: assegnarsi un ruolo con la stored procedure sp_addrolemember

datevenerdì 8 maggio 2009 alle 18.08  - posted by Manuel Scapolan in Database

La stored procedure sp_addrolemember viene utilizzata in SQLServer 2005 per aggiunge un utente del database, un ruolo del database, un account di accesso di Windows o un gruppo di Windows ad un ruolo di database per il database aperto nel contesto corrente.
Peccato che non esista un controllo per impedire al chiamante di eseguire la procedura su se stesso. Per evitare questo spiacevole inconveniente è necessario indicare a SQLServer di considerare attendibile il database in oggetto attraverso il seguente script sql:

ALTER DATABASE dbname SET TRUSTWORTHY ON

Quando il database è impostato su TRUSTWORTHY ON non è però possibile eseguire l'impersonate di un altro utente, se ne abbiamo la necessità dobbiamo prima impostare TRUSTWORTHY ad OFF come nell'esempio seguente:

EXECUTE AS LOGIN = 'login1';
GO
--Set TRUSTWORTHY OFF
ALTER DATABASE dbname SET TRUSTWORTHY OFF
GO
EXECUTE AS USER = 'user2';
--Execution context set to user2
GO
--Set TRUSTWORTHY ON
ALTER DATABASE dbname SET TRUSTWORTHY ON
--Reset the execution context to the previous context
REVERT;
GO

Nota: Per impostare questa opzione, è necessario essere un membro del ruolo sysadmin.

tagsTags: ,

Commenti chiusi

About me

manuel scapolanSono un consulente informatico. Nel 2004 terminati gli studi in Ingegneria Informatica (1° livello), ho iniziato come freelance collaborando con una ditta di consulenza informatica ed una agenzia di marketing e comunicazione nello sviluppo di applicazioni web. Attualmente divido il lavoro di sviluppatore e progettista web con attività di formazione nel settore della programmazione.
View Manuel Scapolan's profile on LinkedIn

Follow me on Follow manuelscapolan on Twitter
Member of:
innova

Calendario


<<  febbraio 2012  >>
lumamegivesado
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

Disclaimer

Eccetto dove diversamente specificato, i contenuti di questo sito sono rilasciati mediante:
creative commons
Attribuzione: Non commerciale
Condividi allo stesso modo. R.2.5

Books (a bit more about my library)

Domain Driven Design - Eric Evans Applying Domain-Driven Design and Patterns - Jimmy Nilsson Refactoring to Patterns - Joshua Kerievsky Design Patterns -  Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides Code Complete Second Edition - Steve McConnell Patterns of Enterprise Application Architecture - Martin Fowler Agile Principles, Patterns, and Practices in C# - Robert C. Martin xUnit Test Patterns - Gerard Meszaros Refactoring - Martin Fowler CLR via C# Second Edition - Jeffrey Richter Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries - Krzysztof Cwalina, Brad Abrams Don't make me think! - Steve Krug Bulletproof Ajax - Jeremy Keith

Manuel Scapolan Copyright © 2007 - 2010 - Tutti i diritti riservati - Powered by BlogEngine.NET 1.5.0.7 - silk icons by famfamfam - Time CET