We have naming standards here, so I grant permissions according to the naming standards as well as according to the type. If you can come up with a select that gets the 100 tables, then just modify the select below and the role name. If you can not come up with a select, then it would be a manual process.CREATE PROC isp_Grant_PermissionsASSET NOCOUNT ONDECLARE @objName varchar(80)DECLARE @objType char(2)DECLARE grant_perms_on_sps CURSOR FOR SELECT name, typeFROM SYSOBJECTS WHERE ( (type = 'P' AND name LIKE 'usp[_]%') OR (type = 'FN' AND name LIKE 'udf[_]%') OR (type = 'TF' AND name LIKE 'udf[_]%') OR (type = 'U') OR (type = 'V' AND name LIKE 'v[_]%') ) AND uid = 1 AND status > -1OPEN grant_perms_on_spsFETCH NEXT FROM grant_perms_on_sps INTO @objName, @objTypeWHILE @@FETCH_STATUS = 0BEGIN IF @objType NOT IN ('TF', 'U', 'V') BEGIN EXEC ('GRANT EXECUTE ON dbo.' + @objName + ' TO SomeRole') EXEC ('GRANT EXECUTE ON dbo.' + @objName + ' TO SomeRole') END ELSE BEGIN EXEC ('GRANT SELECT ON dbo.' + @objName + ' TO SomeRole') END FETCH NEXT FROM grant_perms_on_sps INTO @objName, @objTypeENDCLOSE grant_perms_on_spsDEALLOCATE grant_perms_on_spsGOTara