Nope Not 1000 times. You grant (say read privileges) as follows. Say your Role is XYZ,

Grant SELECT on table_1 to XYZ
Grant SELECT on table_2 to XYZ
Grant SELECT on table_3 to XYZ
..
...
....
Grant SELECT on table_n to XYZ

And

Grant XYZ to Bob/Mary/scott/whoever your users are
This way you don't need to give Grant SELECT ON table_1 to table_n to every user Bob/Mary/scott.

With no role for 1000 tables you need to grant for each user 1000 times and for these 3 users 3000 Grant statements.
Now you do with only 1000+3 grant statements.