GRANT

Ger en användare eller ett huvudnamn ett privilegium för ett objekt. Att bevilja ett privilegium för en databas (till exempel ett privilegium) innebär att behörigheten beviljas SELECT implicit på alla objekt i databasen. Att bevilja en viss behörighet i katalogen innebär att behörigheten beviljas implicit på alla databaser i katalogen.

Syntax

GRANT
  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 | READ_METADATA | CREATE_NAMED_FUNCTION | ALL PRIVILEGES
GRANT
  USAGE
  ON (CATALOG | DATABASE <database-name>)
  TO principal
principal
  : `<user>@<domain-name>` | <group-name>

Om du vill ge behörighet till alla användare anger du nyckelordet users efter TO .

Exempel

GRANT USAGE, SELECT ON DATABASE <database-name> TO `<user>@<domain-name>`
GRANT SELECT ON ANONYMOUS FUNCTION TO `<user>@<domain-name>`
GRANT SELECT ON ANY FILE TO `<user>@<domain-name>`

Visa baserad åtkomstkontroll

Du kan konfigurera en mer specifik åtkomstkontroll (till exempel för rader och kolumner som matchar specifika villkor) genom att ge åtkomst till härledda vyer som innehåller godtyckliga frågor.

Exempel

CREATE OR REPLACE VIEW <view-name> AS SELECT columnA, columnB FROM <table-name> WHERE columnC > 1000;
GRANT SELECT ON VIEW <view-name> TO `<user>@<domain-name>`;

Mer information om nödvändigt tabellägarskap finns i Vanliga frågor och svar .