seapen
New Contributor II

Update:

Interestingly, if i URL encode _twice_ it appears to work, eg:

  test("attempting to access schema with backtick") {
    val client = new WorkspaceClient()
    client.config().setHost("redacted").setToken("redacted")

    val name = "databricks_dev.test_schema`"
    val encoded = URLEncoder.encode(name, "UTF-8")
    val encodedAgain = URLEncoder.encode(encoded, "UTF-8")

    val result = client.grants().getEffective(
        new GetEffectiveRequest()
          .setFullName(encodedAgain)
          .setPrincipal("redacted")
          .setSecurableType(SecurableType.SCHEMA)
      )
      .getPrivilegeAssignments
    println(result)
  }

So:

  • "databricks_dev.test_schema`" does not work
  • "databricks_dev.test_schema%60" does not work
  • "databricks_dev.test_schema%2560" DOES work

I am assuming i am doing something wrong here as this behavior does appear strange.