Skip to content

Instantly share code, notes, and snippets.

@saj1th
Created June 9, 2021 06:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save saj1th/48d1ab7fe93f9f97f14c65c5ee90573a to your computer and use it in GitHub Desktop.
Save saj1th/48d1ab7fe93f9f97f14c65c5ee90573a to your computer and use it in GitHub Desktop.
databricks_catalog_access_report
from pyspark.sql.functions import *
from functools import reduce
df_grants = []
df_dbs = spark.sql("show databases")
dbs = df_dbs.select("databaseName").collect()
for db in dbs:
database_name = db[0]
df = spark.sql("SHOW GRANT ON DATABASE {}".format(database_name))
df_grants.append(df)
df_tables = spark.sql("show tables in {}".format(database_name)).filter(col("isTemporary") == False)
tables = df_tables.collect()
for table in tables:
df = spark.sql("SHOW GRANT ON TABLE {}.{}".format(table.database, table.tableName))
df_grants.append(df)
df_all = reduce(DataFrame.unionAll, df_grants)
display(df_all)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment