Hola!!
Tengo el siguiente problema: he creado una base de datos (mediante el usuario Administrador que trae por default el sistema) de nombre "COLUY" con los siguientes usuarios y roles:
Use COLUY;
Create role Proveedor;
Grant Select On Persona_Fisica To Proveedor;
Create Login Abastecedor With Password = "Abastecedor1";
Create User Abastecedor For Login Abastecedor With Default_Schema = COLUY;
Exec sp_addrolemember N"Proveedor", N"Abastecedor";
---------------------------------
Create role Administrativo;
Grant Select, Insert, Update On Persona_Fisica To Administrativo;
Create Login Administrador With Password = "Administrador1";
Create User Administrador For Login Administrador With Default_Schema = COLUY;
Exec sp_addrolemember N"Administrativo", N"Administrador";
---------------------------------
Create role Gerente;
Grant Select, Insert, Update, Delete On Persona_Fisica To Gerente With Grant Option;
Create Login Manager With Password = "Manager1";
Create User Manager For Login Manager With Default_Schema = COLUY;
Exec sp_addrolemember N"Gerente", N"Manager";
----------------------------
Además cree un Trigger en la tabla Persona_Fisica (esto lo hice con el Administrador que trae por default el sistema)
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N"edad"
AND type = "TR")
DROP TRIGGER edad
GO
CREATE TRIGGER edad
on dbo.Persona_Fisica
FOR INSERT, UPDATE
AS
DECLARE @Fecha datetime
SET @Fecha=(Select fnacimiento from INSERTED i)
IF (DATEDIFF(dd, @Fecha, GetDate())/365) < 18
Begin
RAISERROR("La Persona Fisica debe ser mayor de 18 años",16,1);
ROLLBACK TRANSACTION
End
----------------------------------------------------
El trigger funciona (si me conecto como Administrador de la base de datos). Y los roles con sus respectivos usuarios tambien andan y me permiten conectarme a la base de datos que creé.
El problema reside en que al conectarme como alguno de los tres usuarios que creé los desencadenadores no funcionan, e incluso si voy al explorador de objetos, y alli a la carpeta de desencadenadores aparece el trigger con un "candado" sobre el iconito.
Cuando realizo un INSERT me lanza un error y me dice que no tengo permiso de EJECUCION.
Probe de darle permisos de ejecucion a los Roles, a los usuarios, pero nada..... todo ha sido inutil.
Estoy usando SQL Server 2005 Express
Si alguien me puede dar una mano se lo agradezco, lo preciso para un Obligatorio que tengo que entregar.
Desde ya, muchas gracias