Me preguntaba si había una manera bastante eficiente de usar T-SQL con la sintaxis de SQL Server 2000 para CONCEDER SELECCIONAR, INSERTAR, ACTUALIZAR, BORRAR, en todas las TABLAS y VISTAS para una base de datos en particular, excluyendo 2 o 3 de los más de 100 objetos. También me gustaría poder otorgar privilegios EXEC en todos los procedimientos almacenados.
Actualmente estoy usando el siguiente código para cambiarlos uno por uno. Hacer esto durante aproximadamente 100 tablas y 100 vistas lleva demasiado tiempo y llevará más tiempo a través de la GUI (a menos que también lo esté haciendo mal).
use [DATABASE_NAME]
GO
GRANT DELETE ON [dbo].[table_name]TO [user_name]
GO
use [DATABASE_NAME]
GO
GRANT INSERT ON [dbo].[table_name]TO [user_name]
GO
use [DATABASE_NAME]
GO
GRANT SELECT ON [dbo].[table_name]TO [user_name]
GO
use [DATABASE_NAME]
GO
GRANT UPDATE ON [dbo].[table_name]TO [user_name]
GO
¿Cómo puedo usar T-SQL para recorrer TODAS las tablas y vistas de usuario para otorgar ciertos privilegios y excluir un par de objetos?
fuente