SQL Server - un SP para asignar permisos a tablas

 
Vista:

un SP para asignar permisos a tablas

Publicado por Eduardo Valle (3 intervenciones) el 21/12/2005 16:19:54
Todos los dias se debe llevar un backup de la base a otro local, eliminar la Base y levantar la que llevo para reeemplazar

El problema que se me genera es que debo agregar nuevamente todos los permisos a todas las tablas, y a los SP de igual manera

existira algo q me evite de asignar los permisos o replicar la data de tal manera que al replicar se envien los datos que han sido modificados solamente o los nuevos ...

Agradecer su REspuestas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 14
Ha disminuido su posición en 5 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:un SP para asignar permisos a tablas

Publicado por Yamil Bracho (39 intervenciones) el 30/12/2005 14:37:51
Este te puede servir

-- --------------------------------------------------------------------
-- Da permisologia al rol DB_BIT
-- Autor Fecha Comentarios
-- ------------------------ -------------------------------------------
-- Yamil Bracho 11/OCT/2005 Version Inicial
-- Yamil Bracho 09/Nov/2005 Permisologia para stored proc
-- --------------------------------------------------------------------
DECLARE @table_name VARCHAR(255),
@sql NVARCHAR(255),
@usuario NVARCHAR(255),
@spName NVARCHAR(255),
@cont INT

SET @usuario = 'DB_BIT'

-- --------------------------------------------------------------------
-- Permisologia para las tablas
-- --------------------------------------------------------------------
DECLARE tabla_cursor CURSOR FOR
SELECT name FROM sysObjects WHERE xtype = 'U'

OPEN tabla_cursor
FETCH NEXT FROM tabla_cursor INTO @table_name

SET @cont = 1
WHILE @@FETCH_STATUS = 0
BEGIN
-- PRINT 'Table=' + @table_name
SET @sql = 'GRANT SELECT, INSERT, DELETE, UPDATE ON ' + @table_name + ' TO ' + @usuario
EXEC sp_executesql @sql
SET @cont = @cont + 1

FETCH NEXT FROM tabla_cursor INTO @table_name
END

CLOSE tabla_cursor
DEALLOCATE tabla_cursor
PRINT CAST( @cont AS VARCHAR) + ' tablas procesadas.'

-- --------------------------------------------------------------------
-- Da permiso de ejecucion al rol
-- --------------------------------------------------------------------
DECLARE sp_cursor CURSOR FOR
SELECT name FROM sysObjects WHERE xtype = 'P'

OPEN sp_cursor
FETCH NEXT FROM sp_cursor INTO @spName

SET @cont = 1
WHILE @@FETCH_STATUS = 0
BEGIN
IF LEFT( @spName, 2) = 'p_'
BEGIN
--PRINT 'Stored proc=' + @spName
SET @sql = 'GRANT EXECUTE ON ' + @spName + ' TO ' + @usuario
EXEC sp_executesql @sql
SET @cont = @cont + 1
END
FETCH NEXT FROM sp_cursor INTO @spName
END

CLOSE sp_cursor
DEALLOCATE sp_cursor
PRINT CAST( @cont AS VARCHAR) + ' stored proc procesados.'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar