Utilisateurs, privilèges et rôles
Cette rubrique présente une vue d'ensemble du contrôle d'accès basé sur les rôles (RBAC) dans Milvus, en détaillant les définitions et les relations entre les utilisateurs, les rôles, les objets et les privilèges.
La figure suivante illustre la relation entre les objets, les privilèges, les rôles et les utilisateurs.
utilisateurs_et_rôles
Concepts clés
Pour gérer le contrôle d'accès aux ressources Milvus, il est important de comprendre les composants clés de la RBAC : types d'objets, noms d'objets, utilisateurs, rôles et privilèges.
Type d'objet: catégorie de l'objet pour lequel un privilège est attribué. Le type d'objet peut être :
Global
: des objets à l'échelle du système, permettant à l'utilisateur d'effectuer des actions qui affectent toutes les collections, tous les utilisateurs ou tous les paramètres à l'échelle du système.Collection
: des objets spécifiques à une collection, permettant à l'utilisateur d'effectuer des actions telles que la création d'index, le chargement de données, l'insertion ou la suppression de données et l'interrogation de données au sein d'une collection spécifique.User
: Objets liés à la gestion des utilisateurs, permettant à l'utilisateur de gérer les informations d'identification et les rôles des utilisateurs de la base de données, comme la mise à jour des informations d'identification des utilisateurs ou l'affichage des détails de l'utilisateur.
Nom de l'objet: nom spécifique de l'objet dont l'accès doit être contrôlé. Par exemple :
- Si le type d'objet est
Global
, le nom de l'objet doit être défini sur le caractère générique (*
), indiquant tous les objets du type spécifié. - Si le type d'objet est
Collection
, le nom de l'objet est le nom d'une collection. - Si le type d'objet est
User
, le nom de l'objet est le nom d'un utilisateur de la base de données.
- Si le type d'objet est
Utilisateur: une personne ou une application qui interagit avec Milvus, qui consiste en un nom d'utilisateur et un mot de passe correspondant.
Privilège: définit les actions qui peuvent être effectuées et les ressources auxquelles il est possible d'accéder. Les privilèges ne sont pas accordés directement aux utilisateurs mais sont attribués à des rôles.
Rôle: définit l'ensemble des privilèges dont dispose un utilisateur pour certains objets. Une fois qu'un rôle est associé à un utilisateur, ce dernier hérite de tous les privilèges accordés à ce rôle.
Exemple : Octroi de privilèges
L'extrait de code suivant montre comment accorder un privilège CreateIndex
à un rôle sur une collection spécifique :
milvusClient.grant_privilege(
role_name="CUSTOM_ROLE_NAME",
object_type="Collection", # Valid value: Global, Collection or User.
privilege="CreateIndex", # See the table below for valid privilege names and relevant API descriptions.
object_name="YOUR_COLLECTION_NAME" # The name of the collection to grant access to. Use "*" to grant access to all collections.
)
GrantPrivilegeReq grantPrivilegeReq = GrantPrivilegeReq.builder()
.roleName("roleName")
.objectName("CollectionName") // The name of the collection to grant access to. Use "*" to grant access to all collections.
.objectType("Collection") // Valid value: Global, Collection or User.
.privilege("CreateIndex") // See the table below for valid privilege names and relevant API descriptions.
.build();
client.grantPrivilege(grantPrivilegeReq);
milvusClient.grantPrivilege({
roleName: 'roleName',
object: 'Collection', // Valid value: Global, Collection or User.
objectName: 'CollectionName', // The name of the collection to grant access to. Use "*" to grant access to all collections.
privilegeName: 'CreateIndex' // See the table below for valid privilege names and relevant API descriptions.
})
Pour obtenir plus d'informations sur les API liées aux privilèges, reportez-vous à grant_privilege et revoke_privilege.
Pour obtenir plus d'informations sur les API liées aux privilèges, reportez-vous à grantPrivilege et revokePrivilege.
Pour obtenir plus d'informations sur les API liées aux privilèges, reportez-vous à grantPrivilege et revokePrivilege.
Utilisateurs et rôles par défaut
Milvus crée par défaut un utilisateur root
avec un mot de passe par défaut Milvus
. L'utilisateur root
se voit accorder les privilèges admin
, ce qui signifie que cet utilisateur root
peut avoir accès à toutes les ressources et effectuer toutes les actions.
Si un utilisateur est associé au rôle public
, il bénéficie des privilèges suivants :
DescribeCollection
ShowCollections
IndexDetail
Liste des types d'objets et des privilèges
Le tableau suivant répertorie les valeurs que vous pouvez choisir lors de l'activation de RBAC.
Type d'objet | Nom du privilège | Description de l'API pertinente côté client |
---|---|---|
Collection | CreateIndex | Créer un index |
Collection | Index de dépôt | DropIndex |
Collection | Détails de l'index | DescribeIndex/GetIndexState/GetIndexBuildProgress |
Collection | Chargement | LoadCollection/GetLoadingProgress/GetLoadState |
Collection | GetLoadingProgress | GetLoadingProgress |
Collection | GetLoadState | Obtenir l'état de chargement |
Collection | Release | Collection Release |
Collection | Insérer | Insérer |
Collection | Supprimer | Supprimer |
Collection | Insérer | Supprimer |
Collection | Recherche | Recherche |
Collecte | Chasse d'eau | Chasse d'eau/GetFlushState |
Collection | GetFlushState | GetFlushState |
Collection | Requête | Requête |
Collection | Obtenir des statistiques | Obtenir des statistiques sur la collection |
Collection | Compactage | Compacter |
Collection | Importation | BulkInsert/Import |
Collection | Bilan de charge | Bilan de charge |
Collection | Créer une partition | Créer une partition |
Collection | DropPartition | DropPartition |
Collection | ShowPartitions | ShowPartitions |
Collection | HasPartition | HasPartition |
Global | Toutes | Toutes les autorisations d'opérations API dans cette table |
Globale | Créer une collection | Créer une collection |
Globale | DropCollection | DropCollection |
Global | Décrire la collection | DescribeCollection |
Global | Afficher les collections | Afficher les collections |
Global | Renommer la collection | RenameCollection |
Global | Tous les flux | FlushAll |
Global | Créer un propriétaire | CreateUser CreateRole |
Global | Abandonner le propriétaire | DeleteCredential DropRole |
Global | Sélectionner un propriétaire | SelectRole/SelectGrant |
Global | ManageOwnership | OperateUserRole OperatePrivilege |
Global | Créer un groupe de ressources | Créer un groupe de ressources |
Global | DropResourceGroup | DropResourceGroup |
Global | DescribeResourceGroup | DescribeResourceGroup (Décrire le groupe de ressources) |
Global | ListResourceGroups | Liste des groupes de ressources |
Global | TransferNode | TransferNode |
Global | TransferReplica | Réplique de transfert |
Global | Créer une base de données | Créer une base de données |
Global | DropDatabase | DropDatabase |
Globale | ListDatabases | Bases de données de listes |
Globale | Créer un alias | Créer un alias |
Global | Abandonner l'alias | Abandon de l'alias |
Global | DescribeAlias | DescribeAlias |
Global | ListAliases | Liste des noms de domaine |
Utilisateur | UpdateUser | Mise à jour de l'accréditation |
User | SelectUser | SelectUser |
Prochaines étapes
- Découvrez comment activer la fonction RBAC.