DENY

Een bevoegdheid voor een object aan een gebruiker of principal wordt onthoofd. Het weigeren van een bevoegdheid voor een database (bijvoorbeeld een bevoegdheid) heeft als gevolg dat deze bevoegdheid impliciet wordt weigert voor alle SELECT objecten in die database. Het weigeren van een specifieke bevoegdheid voor de catalogus heeft als gevolg dat deze bevoegdheid impliciet wordt weigert voor alle databases in de catalogus.

Syntax

DENY
  privilege_type [, privilege_type ] ...
  ON [CATALOG | DATABASE <database-name> | TABLE <table-name> | VIEW <view-name> | FUNCTION <function-name> | ANONYMOUS FUNCTION | ANY FILE]
  TO principal

privilege_type
  : SELECT | CREATE | MODIFY | USAGE | READ_METADATA | CREATE_NAMED_FUNCTION | ALL PRIVILEGES

principal
  : `<user>@<domain-name>` | <group-name>

Als u een bevoegdheid voor alle gebruikers wilt weigeren, geeft u het trefwoord users op na TO .

DENY kan worden gebruikt om ervoor te zorgen dat een gebruiker of principal DENY heeft tot het opgegeven object, ondanks impliciete of expliciete GRANTs . Wanneer een object wordt toegang tot een object, controleert Databricks eerst of het object expliciet of impliciet is, voordat wordt gecontroleerd of er expliciete DENYs of impliciete GRANTs zijn.

Stel bijvoorbeeld dat er een database is db met tabellen t1 en t2 . Een gebruiker krijgt in eerste instantie SELECT bevoegdheden voor db . De gebruiker heeft toegang t1t1t2 vanwege de op de database GRANTdb .

Als de beheerder een op tabel uit geeft, heeft de DENY gebruiker geen toegang meer tot t1t1 . Als de beheerder een op database uit geeft, heeft de gebruiker geen toegang tot tabellen in, zelfs niet als deze tabellen DENYdb expliciet dbDENYGRANT zijn. Dat wil zeggen dat DENY altijd de wordt verded. GRANT

Voorbeeld

DENY SELECT ON <table-name> TO `<user>@<domain-name>`;