I'm not entirely sure if this is what you're asking, but the OBJECT ::
keyword here isn't meant to be replaced by some sort of identifier such as TABLE ::
, it's meant to be specified literally as OBJECT ::
. It's used to indicate that you want to grant permissions to an object as opposed to, say, a schema. According to this page, an object is any schema-level securable, such as a table, view, stored procedure, sequence, etc.
Also according to that page, the OBJECT ::
keyword is optional if schema_name
is specified. That leads me to believe that the need for specifying OBJECT ::
is simply to make sure the database it's what type of entity the permissions are being granted to, since permissions can be granted to objects, schemas, server principles, and more.