Views are designed to do what exactly you want so use them.
You only need to create one view per table with the columns that you want exposed. You can then control access to the views rather than the tables.
For further details see
Teradata Online Documentation | Quick access to technical manuals[
^]
You can automate the creation of the views by using something like this to get a list of the tables
SELECT TableName,
FROM DBC.TablesV
WHERE TableKind = 'T'
and DatabaseName = 'yourDatabaseName'
ORDER BY TableName;
and then for each of those something like
SELECT ColumnName
FROM dbc.columnsV
WHERE DatabaseName = 'yourDatabaseName' and
TableName = 'table_name_from_above';
Generate the script for all columns and then just delete the ones you want to omit from the view - you could use any scripting language for that - even Excel!