t sql – Creating sql server custom database role that only allows reading some columns and nothing else

I want to create an sql server Custom Database Role which only allows reading some columns of some tables, and nothing else. this is my attempt.

    CREATE ROLE CustomDatabaseRole01
    GO
    GRANT SELECT ON OBJECT::dbo.Table1(Col1,Col2) To 
    CustomDatabaseRole01
    GO
    GRANT SELECT ON OBJECT::dbo.Table2(Col3,Col4) To 
    CustomDatabaseRole01
    GO
    ALTER ROLE CustomDatabaseRole01 ADD MEMBER UserTest01

the script executes, the role is created and UserTest01 is added as a
member however if I execute as UserTest01:

SELECT * FROM Table1;

I get all the columns, and if I execute:

SELECT * FROM Table3;

then again I can read Table3, without granting

please could someone explain