GRANT

Octroie un privilège sur un objet à un utilisateur ou à un principal. L’octroi d’un privilège sur une base de données (par exemple un SELECT privilège) a pour effet d’accorder implicitement ce privilège sur tous les objets de cette base de données. L’octroi d’un privilège spécifique sur le catalogue a pour effet d’accorder implicitement ce privilège sur toutes les bases de données du catalogue.

Syntaxe

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>

Pour accorder un privilège à tous les utilisateurs, spécifiez le mot clé users après TO .

Exemples

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>`

Contrôle d’accès en fonction de l’affichage

Vous pouvez configurer un contrôle d’accès affiné (pour les lignes et les colonnes qui correspondent à des conditions spécifiques, par exemple) en accordant l’accès à des vues dérivées qui contiennent des requêtes arbitraires.

Exemples

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>`;

Pour plus d’informations sur la propriété de la table requise, consultez Forum aux questions (FAQ).