Мне было интересно, существует ли достаточно эффективный способ использования T-SQL с синтаксисом SQL Server 2000 для GRANT SELECT, INSERT, UPDATE, DELETE для всех таблиц и VIEWS для конкретной базы данных, исключая 2 или 3 из более чем 100 объектов. Я также хотел бы иметь возможность предоставлять привилегии EXEC для всех хранимых процедур.
В настоящее время я использую код ниже, чтобы изменить их один за другим. Выполнение этого для примерно 100 таблиц и 100 представлений занимает слишком много времени и займет еще больше времени через графический интерфейс (если только я не делаю это неправильно).
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
Как я могу использовать T-SQL для циклического перебора ВСЕХ пользовательских таблиц и представлений для предоставления определенных привилегий при исключении пары объектов?
источник