jueves, 5 de noviembre de 2015

CREAR USUARIO

-- ================================================================================
-- AUTOR:       MANUEL OMAR OLGUÍN HERNÁNDEZ
-- FECHA:       1 JUN 2015
-- DESCRIPCION  CREA UN LOGIN Y SU CUENTA DE USUARIO 

-- ================================================================================



IF NOT EXISTS(SELECT * FROM SYS.syslogins WHERE NAME = 'UserName')
       BEGIN
             CREATE LOGIN UserName
             WITH PASSWORD = 'P@$$w0rd',
             DEFAULT_DATABASE = MASTER,
             DEFAULT_LANGUAGE = ENGLISH,
             CHECK_POLICY = OFF,
             CHECK_EXPIRATION = OFF;
       END
GO----------------------------------------------------------------------------------




USE AVISPA;
GO

IF NOT EXISTS(SELECT * FROM SYS.sysusers WHERE NAME = 'UserName')
       BEGIN
             CREATE USER UserNameFOR LOGIN UserName
       END
ELSE
       BEGIN
             ALTER USER UserNameWITH LOGIN = UserName
       END





 -- agrega el usuario al ROL

ALTER ROLE [ur_RoleName] ADD  MEMBER [UserName];


 ALTER ROLE [db_datareader]  ADD MEMBER [ur_RoleName]
 ALTER ROLE [db_datawriter]  ADD MEMBER [ur_RoleName]
 ALTER ROLE [db_execute]     ADD MEMBER [ur_RoleName]



------------------------------------------------------------------------------------------

       GRANT SELECT, UPDATE, INSERT, DELETE    ON [Schema].[Tabla] TO [UserName]   
       GRANT EXECUTE                           ON [Schema].[up_Procedure] TO [UserName]

       --     EXEC sp_addrolemember  N'db_datareader' ,UserName
       --     EXEC sp_addrolemember  N'db_datawriter' ,UserName
       --     EXEC sp_addrolemember  N'db_execute' ,UserName
       --     EXEC sp_addrolemember  N'db_ddladmin' ,UserName




-- FUNCIONES
GRANT SELECT ON [Brokerage].[fn_GetFees]                           TO [ur_RoleName];



-- ESCALAR FUNCTION
GRANT EXECUTE ON [Instrument].fn_GetMaturityDate                   TO [ur_RoleName];




-------------------------------------- select a todo el esquema 
GRANT SELECT ON SCHEMA :: Contact      TO [ur_RoleName];

GO







-- PARA QUE NO VEA LAS DEFINICIONES DE LA BASE DE DATOS
-----------------------------------------------------------------------------------
DENY VIEW ANY DEFINITION TO UserName
DENY EXECUTE ON SP_TABLES TO UserName

-----------------------------------------------------------------------------------








-----------------------------------------------------------------------------------
 -- PARA QUE PUEDAN CREAR Y MODIFICAR PROCEDURES Y VISTAS EN CIERTOS ESQUEMAS
 -----------------------------------------------------------------------------------
 GRANT CREATE PROCEDURE               TO [ur_RoleName]
 GRANT CREATE VIEW                    TO [ur_RoleName]

 -------- LOS PERMISOS DE MODIFICAR OBJETOS SON PARA LOS SIGUIENTES ESQUEMAS
 GRANT ALTER                      ON SCHEMA::Access          TO [ur_RoleName]
 GRANT ALTER                      ON SCHEMA::Brokerage       TO [ur_RoleName]
 GRANT ALTER                      ON SCHEMA::CAP             TO [ur_RoleName]
 GRANT ALTER                      ON SCHEMA::Client          TO [ur_RoleName]
-----------------------------------------------------------------------------------













--=======================================================================
-- crea el rol
--=======================================================================
if NOT exists (select name from sys.database_principals where name = 'db_execute')
  BEGIN
       CREATE ROLE [db_execute] AUTHORIZATION [dbo];
  END
  GO
  GRANT EXECUTE TO [db_execute]
 GO------------------------




No hay comentarios.:

Publicar un comentario