Pat
Esteemed Contributor

If someone needs this in the future, like I did.

The issue is with your JSON structure. The Databricks CLI uses "changes" with "add" instead of "privilege_assignments" with "privileges".

{
  "changes": [
    {
      "principal": "mailid",
      "add": [
        "USE_CATALOG"
      ]
    }
  ]
}

To remove the old ALL_PRIVILEGES first:

{
  "changes": [
    {
      "principal": "mailid",
      "remove": [
        "ALL_PRIVILEGES"
      ],
      "add": [
        "USE_CATALOG"
      ]
    }
  ]
}

Then run:

databricks grants update catalog demo_cat --json @privileges.json  

 Verify the changes:

databricks grants get catalog demo_cat

 The key difference is using "changes" array with "add"/"remove" actions instead of "privilege_assignments" with "privileges".