Sécurité

Décrit les principales fonctions de sécurité de MCP Server, notamment l'authentification, les contrôles d'accès, la vérification et la conformité, pour vous aider à protéger votre environnement de base de données d'IA autonome.

Rubriques

Accès sécurisé aux données

Permet un accès sécurisé et détaillé aux données à l'aide des stratégies et de la sécurité Virtual Private Database (VPD).

Avec le serveur MCP de base de données d'IA autonome, vous pouvez accéder à toutes les données et métadonnées autorisées par vos autorisations de base de données. Le serveur MCP fonctionne avec les fonctions de sécurité d'Oracle telles que Virtual Private Database (VPD) et Real Application Security (RAS), mais n'applique pas les contrôles basés sur le profil d'IA ni ne limite les actions à l'accès "Sélectionner seulement". Vous décidez des outils à enregistrer et à exposer. Par conséquent, en sélectionnant uniquement un ensemble d'outils restrictifs, vous pouvez contrôler les opérations que le serveur MCP peut effectuer sur vos données.

Note

Gardez à l'esprit que lorsque vous utilisez MCP, les données peuvent quitter la base de données. Considérez toujours la sécurité de votre application client MCP pour vous assurer que les informations sensibles restent protégées.

Note

Vous devez vous assurer que la description de l'outil indique clairement que les résultats de l'outil ne sont pas destinés à être exécutés par le LLM.

Assurez-vous que l'utilisateur de base de données MCP dispose uniquement des privilèges minimum requis pour empêcher les données sensibles de quitter la base de données. Envisager d'adopter une approche à deux schémas pour une sécurité renforcée :
  • Les outils personnalisés doivent résider dans le schéma d'utilisateur de base de données utilisé pour se connecter au serveur MCP (par exemple, MCP_USER).
  • Les fonctions PL/SQL utilisées par ces outils doivent être définies dans un schéma distinct (par exemple, SALES_USER).
  • Accordez l'accès approprié de SALES_USER au schéma MCP_USER.

Créer et enregistrer une politique de BDVP

Voyez comment créer et enregistrer des politiques de base de données privée virtuelle (VPD) pour protéger vos données et vos opérations.

Vous pouvez définir des stratégies Oracle Virtual Private Database (VPD) pour fournir un contrôle d'accès détaillé, garantissant que seules des lignes de données spécifiques sont visibles par chaque utilisateur.

Cet exemple de politique de BDVP filtre la table HR.EMPLOYEE afin que les utilisateurs qui y accèdent au moyen du serveur MCP ne voient que leur propre enregistrement, de manière automatique et sécurisée.

Exemple : Créer une stratégie VPD dans la base de données

Cet exemple montre comment retourner uniquement les rangées qu'un utilisateur connecté doit voir lorsqu'un client d'IA appelle des outils MCP sur une base de données d'IA autonome.

CREATE OR REPLACE FUNCTION limit_sal (v_schema IN VARCHAR2, v_objname IN VARCHAR2)
  RETURN VARCHAR2 authid current_user AS
BEGIN
     RETURN 'employee_id = SYS_CONTEXT(''MCP_SERVER_ACCESS_CONTEXT'', ''USER_IDENTITY'')';
END;

Lorsqu'un outil MCP est accessible, l'identité de l'utilisateur de base de données est disponible au moyen de sys_context('MCP_SERVER_ACCESS_CONTEXT', 'USER_IDENTITY'). Vous pouvez créer des stratégies de BDVP qui utilisent ces valeurs de contexte d'application pour limiter les enregistrements de données visibles par chaque utilisateur d'application ou de base de données. S'il existe des politiques de BDVP pour un utilisateur, créez une autre politique à l'aide de MCP_SERVER_ACCESS_CONTEXT pour restreindre les rangées et utilisez les politiques de BDVP pour l'utilisateur lors de l'utilisation du serveur MCP.

Exemple : Enregistrer la stratégie VPD

Cet exemple associe la fonction de filtrage à la table HR.EMPLOYEE.

BEGIN
   DBMS_RLS.ADD_POLICY( 
        object_schema        => 'HR',
        object_name          => 'EMPLOYEE',
        policy_name          => 'POL',
        policy_function      => 'LIMIT_SAL');
END;
/

Listes de contrôle d'accès (ACL)

Gérer et restreindre l'accès réseau à vos ressources de base de données à l'aide des listes de contrôle d'accès (LCA).

Les listes de contrôle d'accès (LCA) fournissent un moyen puissant de gérer et de restreindre l'accès réseau à vos ressources de base de données. En configurant des listes de contrôle d'accès, vous pouvez définir quels clients ou réseaux sont autorisés à se connecter, améliorant ainsi la sécurité de votre base de données. Pour plus de détails, voir Liste de contrôle d'accès au réseau (LCA).

Audit

Le serveur MCP fournit des fonctionnalités d'audit pour vous aider à surveiller et suivre tous les accès et opérations. Les journaux de vérification saisissent des informations détaillées sur les politiques personnalisées.

Le serveur MCP enregistre des informations détaillées sur chaque accès et les outils spécifiques utilisés.

Note

Ne prenez pas de décisions de sécurité ou d'audit basées sur SESSION_USER. Utilisez plutôt MCP_SERVER_ACCESS_CONTEXT$ pour référencer de manière fiable l'utilisateur authentifié.

Politiques de vérification définies par le client : À l'aide de MCP_SERVER_ACCESS_CONTEXT$, vous pouvez définir des politiques de vérification personnalisées pour suivre l'accès aux objets de base de données au moyen du serveur MCP.
--Sample Policy to enable audit on a table when accessed using MCP server

create protected audit policy ADB_MCP_SERVER_ACCESS_AUDIT 
  actions SELECT on HR.EMPLOYEE
  when sys_context('MCP_SERVER_CONTEXT$', 'USERNAME') is not null;