Sécurité

Décrit les principales fonctionnalités de sécurité du serveur MCP, notamment l'authentification, les contrôles d'accès, l'audit et la conformité, afin de vous aider à protéger votre environnement de base de données Autonomous AI.

Sujets

Accès sécurisé aux données

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

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

Remarque

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

Remarque

Vous devez vous assurer que la description de votre outil indique clairement que les résultats de l'outil ne sont pas des commandes que le LLM doit exécuter.

Assurez-vous que l'utilisateur de base de données MCP ne dispose que des privilèges minimum requis pour empêcher les données sensibles de quitter la base de données. Envisagez d'adopter une approche à deux schémas pour renforcer la sécurité :
  • Les outils personnalisés doivent résider dans le schéma 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éation et enregistrement d'une stratégie VPD

Découvrez comment créer et inscrire des stratégies 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 de niveau fin, garantissant ainsi que seules des lignes de données spécifiques sont visibles pour chaque utilisateur.

Cet exemple de stratégie VPD filtre la table HR.EMPLOYEE afin que les utilisateurs qui y accèdent via le serveur MCP ne voient que leur propre enregistrement, automatiquement et en toute sécurité.

Exemple : création d'une stratégie VPD sur la base de données

Cet exemple montre comment renvoyer uniquement les lignes qu'un utilisateur connecté doit voir lorsqu'un client Al appelle des outils MCP sur la base de données Autonomous AI.

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;

Lors de l'accès à un outil MCP, l'identité de l'utilisateur de base de données est disponible via sys_context('MCP_SERVER_ACCESS_CONTEXT', 'USER_IDENTITY'). Vous pouvez créer des stratégies VPD qui utilisent ces valeurs de contexte d'application pour limiter les lignes de données visibles par chaque utilisateur d'application ou de base de données. Si des stratégies VPD existent pour un utilisateur, créez une autre stratégie à l'aide de MCP_SERVER_ACCESS_CONTEXT afin de restreindre les lignes et d'utiliser les stratégies VPD pour l'utilisateur lors de l'utilisation du serveur MCP.

Exemple : enregistrement de 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;
/

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

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

Les listes de contrôle d'accès (ACL) permettent de gérer et de restreindre l'accès réseau aux ressources de base de données. En configurant des listes de contrôle d'accès, vous pouvez définir les clients ou les réseaux autorisés à se connecter, ce qui améliore l'état de sécurité de votre base de données. Pour plus d'informations, reportez-vous à la section Network Access Control List (ACL).

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 d'audit capturent des informations détaillées sur les stratégies personnalisées.

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

Remarque

Ne prenez pas de décisions en matière 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é.

Stratégies d'audit définies par le client : à l'aide de MCP_SERVER_ACCESS_CONTEXT$, vous pouvez définir des stratégies d'audit personnalisées pour suivre l'accès aux objets de base de données via le 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;