Benutzer, Privilegien und Rollen
Dieses Thema bietet einen Überblick über die rollenbasierte Zugriffskontrolle (Role-Based Access Control, RBAC) in Milvus und beschreibt die Definitionen und Beziehungen zwischen Benutzern, Rollen, Objekten und Berechtigungen.
Die folgende Abbildung veranschaulicht die Beziehung zwischen Objekten, Privilegien, Rollen und Benutzern.
Benutzer_und_Rollen
Schlüsselkonzepte
Um die Zugriffskontrolle auf Milvus-Ressourcen zu verwalten, ist es wichtig, die Schlüsselkomponenten von RBAC zu verstehen: Objekttypen, Objektnamen, Benutzer, Rollen und Privilegien.
Objekttyp: die Kategorie des Objekts, für das ein Privileg zugewiesen wird. Der Objekttyp kann sein:
Global
: Systemweite Objekte, die es dem Benutzer erlauben, Aktionen durchzuführen, die alle Sammlungen, Benutzer oder systemweiten Einstellungen betreffen.Collection
: Sammlungsspezifische Objekte, die es dem Benutzer ermöglichen, Aktionen wie das Erstellen von Indizes, das Laden von Daten, das Einfügen oder Löschen von Daten und das Abfragen von Daten innerhalb einer bestimmten Sammlung durchzuführen.User
: Objekte, die sich auf die Benutzerverwaltung beziehen und es dem Benutzer ermöglichen, Anmeldeinformationen und Rollen für Datenbankbenutzer zu verwalten, wie z. B. die Aktualisierung von Benutzeranmeldeinformationen oder die Anzeige von Benutzerdetails.
Objektname: der spezifische Name des Objekts, für das der Zugriff kontrolliert werden soll. Zum Beispiel:
- Wenn der Objekttyp
Global
ist, muss der Objektname auf den Platzhalter (*
) gesetzt werden, der alle Objekte des angegebenen Typs angibt. - Wenn der Objekttyp
Collection
ist, ist der Objektname der Name einer Sammlung. - Wenn der Objekttyp
User
ist, ist der Objektname der Name eines Datenbankbenutzers.
- Wenn der Objekttyp
Benutzer: eine Person oder eine Anwendung, die mit Milvus interagiert, bestehend aus einem Benutzernamen und einem entsprechenden Passwort.
Privileg: definiert die Aktionen, die durchgeführt werden können und die Ressourcen, auf die zugegriffen werden kann. Privilegien werden nicht direkt an Benutzer vergeben, sondern sind Rollen zugewiesen.
Rolle: Definiert die Berechtigungen, die ein Benutzer für bestimmte Objekte hat. Sobald eine Rolle an einen Benutzer gebunden ist, erbt der Benutzer alle Rechte, die dieser Rolle gewährt werden.
Beispiel: Erteilen von Privilegien
Der folgende Codeschnipsel zeigt, wie man einer Rolle das Privileg CreateIndex
für eine bestimmte Sammlung gewährt:
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.
})
Weitere Informationen über privilegierungsbezogene APIs finden Sie unter grant_privilege und revoke_privilege.
Weitere Informationen zu privilegierungsbezogenen APIs finden Sie unter grantPrivilege und revokePrivilege.
Weitere Informationen zu privilegierungsbezogenen APIs finden Sie unter grantPrivilege und revokePrivilege.
Standardbenutzer und -rollen
Milvus erstellt standardmäßig einen Benutzer root
mit einem Standardpasswort Milvus
. Dem Benutzer root
werden die Privilegien admin
gewährt, was bedeutet, dass dieser Benutzer root
Zugriff auf alle Ressourcen hat und alle Aktionen ausführen kann.
Wenn ein Benutzer mit der Rolle public
verknüpft ist, verfügt er über die folgenden Berechtigungen:
DescribeCollection
ShowCollections
IndexDetail
Liste der Objekttypen und Privilegien
In der folgenden Tabelle sind die Werte aufgeführt, die Sie bei der Aktivierung von RBAC wählen können.
Objekttyp | Name des Privilegs | Relevante API-Beschreibung auf der Client-Seite |
---|---|---|
Sammlung | CreateIndex | CreateIndex |
Sammlung | AblegenIndex | AbwurfIndex |
Sammlung | IndexDetail | DescribeIndex/GetIndexState/GetIndexBuildProgress |
Sammlung | Laden | LoadCollection/GetLoadingProgress/GetLoadState |
Sammlung | GetLoadingProgress | GetLoadingProgress (Ladefortschritt) |
Sammlung | GetLoadState | GetLoadState |
Sammlung | Freigeben | ReleaseCollection |
Sammlung | Einfügen | Einfügen |
Sammlung | Löschen | Löschen |
Sammlung | Upsertieren | Upsert |
Sammlung | Suchen | Suche |
Sammlung | Spülen | Flush/GetFlushState |
Sammlung | GetFlushState | GetFlushState |
Sammlung | Abfrage | Abfrage |
Sammlung | HoleStatistik | GetCollectionStatistics |
Sammlung | Verdichtung | Verdichten |
Sammlung | Importieren | BulkInsert/Import |
Sammlung | LoadBalance | LoadBalance |
Sammlung | CreatePartition | CreatePartition |
Sammlung | DropPartition | DropPartition |
Sammlung | ShowPartitions | ShowPartitions |
Sammlung | HasPartition | HasPartition |
Global | Alle | Alle API-Operationsberechtigungen in dieser Tabelle |
Global | CreateCollection | CreateCollection |
Global | DropCollection | DropCollection |
Global | DescribeCollection | DescribeCollection |
Global | ShowCollections | ShowCollections |
Global | RenameCollection | UmbenennenSammlung |
Global | Alle spülen | FlushAll |
Global | CreateOwnership | CreateUser CreateRole |
Global | DropOwnership | DeleteCredential DropRole |
Global | SelectOwnership | SelectRole/SelectGrant |
Global | ManageOwnership | OperateUserRole OperatePrivilege |
Global | CreateResourceGroup | CreateResourceGroup |
Global | DropResourceGroup | DropResourceGroup |
Global | DescribeResourceGroup | DescribeResourceGroup |
Global | ListResourceGroups | ListResourceGroups |
Global | TransferKnoten | Übertragungsknoten |
Global | ÜbertragungsReplikat | ÜbertragungsReplikat |
Global | CreateDatabase | CreateDatabase |
Global | DropDatabase | DropDatabase |
Global | ListDatabases | ListDatabases |
Global | CreateAlias | CreateAlias |
Global | DropAlias | DropAlias |
Global | BeschreibungsAlias | BeschreibungsAlias |
Global | ListAlias | ListAliases |
Benutzer | UpdateUser | UpdateCredential |
Benutzer | SelectUser | SelectUser |
Was kommt als Nächstes
- Erfahren Sie, wie Sie RBAC aktivieren können.