[SQL Server] Empêcher la modification des procédures stockées
IF EXISTS(
SELECT *
FROM sys.triggers
WHERE name = N'trg_ControlerModifProcedures'
AND parent_class_desc = N'DATABASE'
)
DROP TRIGGER trg_ControlerModifProcedures ON DATABASE
GO
CREATE TRIGGER trg_ControlerModifProcedures ON DATABASE
FOR DDL_PROCEDURE_EVENTS
AS
IF IS_MEMBER('db_owner') = 0
BEGIN
PRINT 'Vous n''étes pas autorisé à modifier et créer les procédures'
ROLLBACK TRANSACTION
END
GO
-- Vérifions le comportement :
execute as user = 'user_1'
go
select SUSER_NAME() as NomSession, USER_NAME() as NomUtilisateur
go
create procedure dbo.usp_AfficherDate
as
select getdate()
-- Après le test on reprend son identité par :
revert
select SUSER_NAME() as NomSession, USER_NAME() as NomUtilisateur