Comment protéger les données avec les privilèges de l'utilisateur SQL
Une menace majeure pour l'intégrité des données sont les utilisateurs eux-mêmes. Certaines personnes ne devraient pas avoir accès aux données et SQL vous donne ce contrôle. D'autres auraient seulement limité l'accès à certaines données mais pas d'accès au reste. Certains devraient avoir un accès illimité à tout dans la base de données. Vous avez besoin d'un système de classification des utilisateurs et pour l'attribution de privilèges d'accès aux utilisateurs dans les différentes catégories.
Le créateur d'un schéma spécifie qui est considéré comme son propriétaire. En tant que propriétaire d'un schéma, vous pouvez accorder des privilèges d'accès aux utilisateurs que vous spécifiez. Vous pouvez également révoquer les privilèges que vous avez déjà acquis. Un utilisateur doit passer une procédure d'authentification de prouver son identité avant de pouvoir accéder aux fichiers vous autoriser à utiliser. Les détails de cette procédure dépendent de la mise en œuvre.
SQL vous donne la possibilité de protéger les objets de base de données suivantes:
Tableaux
Colonnes
Vues
Domaines
Les jeux de caractères
Les classements
Traductions
SQL prend en charge plusieurs types de protection: voir, ajouter, modifier, supprimer, référencement, et aide bases de données. Il prend également en charge les protections liées à l'exécution de routines externes.
Vous autorisez l'accès en utilisant le GRANT déclaration et de supprimer l'accès à l'aide du REVOKE déclaration. En contrôlant l'utilisation de la SELECT déclaration, les commandes DCL qui peuvent voir un objet de base de données comme un tableau, une colonne, ou la vue. Le contrôle de la INSERT déclaration détermine qui peut ajouter de nouvelles lignes dans une table.
Restriction de l'utilisation de la METTRE À JOUR déclaration aux utilisateurs autorisés vous permet de contrôler qui peut modifier la table rows- restreindre la EFFACER contrôles des états qui peuvent supprimer des lignes de la table.
Si une table dans une base de données contient une clé étrangère une colonne qui est une clé primaire dans une autre table dans la base de données, vous pouvez ajouter une contrainte à la première table de sorte qu'il fait référence à la deuxième table. Quand une table référence à une autre, un utilisateur de la première table peut être en mesure de déduire des informations sur le contenu de la deuxième.
En tant que propriétaire de la deuxième table, vous pouvez empêcher un tel espionnage. La RÉFÉRENCES DE SUBVENTION déclaration vous donne ce pouvoir. En utilisant le GRANT USAGE déclaration, vous pouvez contrôler qui peut utiliser - ou même voir - le contenu d'un domaine, jeu de caractères, la collation, ou la traduction.
Opération de protection | Déclaration |
---|---|
Permettre à l'utilisateur de voir une table | GRANT SELECT |
Empêcher l'utilisateur de voir une table | REVOKE SELECT |
Permettre à l'utilisateur d'ajouter des lignes à une table | GRANT INSERT |
Empêcher l'utilisateur d'ajouter des lignes à une table | REVOKE INSERT |
Permettre à l'utilisateur de modifier les données dans les rangées de table | GRANT UPDATE |
Empêcher l'utilisateur de modifier les données dans les rangées de table | REVOKE UPDATE |
Permettre à l'utilisateur de supprimer des lignes de table | GRANT SUPPRIMER |
Empêcher l'utilisateur de supprimer des lignes de table | REVOKE SUPPRIMER |
Permettre à l'utilisateur de référencer une table | RÉFÉRENCES DE SUBVENTION |
Empêcher l'utilisateur de référencer une table | REVOKE RÉFÉRENCES |
Permettre à l'utilisateur d'utiliser un nom de domaine, jeu de caractères, traduction, orcollation | GRANT USAGE sur le domaine, GRANT USAGE ONCHARACTER SET, GRANT USAGE ON COLLATION, GRANT USAGE ONTRANSLATION |
Empêcher l'utilisateur d'utiliser un domaine, jeu de caractères, la collation, ortranslation | REVOKE Utilisation sur DOMAIN, REVOKE Utilisation sur CHARACTER SET, révoquer Utilisation sur COLLATION, révoquer Utilisation sur TRADUCTION |
Vous pouvez donner différents niveaux d'accès à des personnes différentes, en fonction de leurs besoins. Les commandes suivantes offrent quelques exemples de cette capacité:
GRANT selecton CUSTOMERTO SALES_MANAGER-
L'exemple précédent permet à une personne - le directeur des ventes - pour voir le tableau d'CLIENT.
L'exemple suivant permet à quiconque ayant accès au système pour voir la liste des prix de détail:
GRANT selecton RETAIL_PRICE_LISTTO PUBLIC
L'exemple suivant permet le directeur des ventes de modifier la liste des prix de détail. Elle peut modifier le contenu des lignes existantes, mais elle ne peut pas ajouter ou supprimer des lignes:
GRANT UPDATEON RETAIL_PRICE_LISTTO SALES_MANAGER-
L'exemple suivant permet le directeur des ventes pour ajouter de nouvelles lignes à la liste des prix de détail:
GRANT INSERTON RETAIL_PRICE_LISTTO SALES_MANAGER-
Maintenant, grâce à ce dernier exemple, le directeur des ventes peuvent supprimer des lignes non désirées de la table, aussi:
GRANT DELETEON RETAIL_PRICE_LISTTO VENTES Manager-