我想知道是否存在使用SQL Server 2000语法的T-SQL来对特定数据库的所有表和视图进行GRANT SELECT,INSERT,UPDATE,DELETE的相当有效的方法,但不包括100个对象中的2个或3个。我还希望能够对所有存储过程授予EXEC特权。
目前,我正在使用以下代码逐一更改它们。对大约100个表和100个视图执行此操作将花费太长时间,并且通过GUI花费的时间甚至更长(除非我也做错了)。
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在所有用户表和视图之间循环以授予某些特权,同时排除几个对象?