Udostępnij przez


Uprawnienia do odczytu i zapisu z pomocniczymi użytkownikami natywnymi w usłudze Azure DocumentDB

Usługa Azure DocumentDB obsługuje pomocniczych natywnych użytkowników usługi DocumentDB z wyspecjalizowanymi rolami tylko do odczytu i zapisu, umożliwiając bezpieczne delegowanie dostępu do danych. Wbudowane konto administracyjne utworzone podczas aprowizacji klastra ma pełne uprawnienia, w tym zarządzanie użytkownikami. Użytkownicy pomocniczi są automatycznie replikowane do replik klastra, ale zarządzanie użytkownikami musi być wykonywane w klastrze podstawowym.

Wymagania wstępne

  • Subskrypcja platformy Azure

  • Istniejący klaster usługi Azure DocumentDB

Role natywne

Usługa Azure DocumentDB obsługuje natywną kontrolę dostępu opartą na rolach dla użytkowników pomocniczych z następującymi rolami:

Description
readWriteAnyDatabase Pełne uprawnienia do odczytu i zapisu, w tym zarządzanie bazą danych
clusterAdmin Pełne uprawnienia do odczytu i zapisu, w tym zarządzanie bazą danych
readAnyDatabase Uprawnienia tylko do odczytu

Zarządzaj użytkownikami i rolami przy użyciu sterowników MongoDB lub narzędzi takich jak powłoka MongoDB (mongosh).

Uwaga / Notatka

Obsługiwane są tylko użytkownicy pełnego odczytu i zapisu z uprawnieniami do zarządzania bazami danych i operacji. Role nie mogą być przypisywane oddzielnie.

Uwierzytelniaj i wykonuj operacje za pomocą powłoki MongoDB

Zaloguj się przy użyciu wbudowanego konta administracyjnego utworzonego podczas konfiguracji klastra. To konto ma wyłączne uprawnienia do zarządzania użytkownikami (userAdmin) w klastrze.

  1. Otwórz terminal na kliencie z zainstalowaną powłoką MongoDB.

  2. Pobierz nazwę klastra usługi Azure DocumentDB i bieżące poświadczenia.

    Wskazówka

    Parametry połączenia natywnego dla klastra można uzyskać w witrynie Azure Portal, korzystając z sekcji Parametry połączenia .

  3. Nawiąż połączenie przy użyciu następujących parametrów połączenia:

    mongosh "mongodb+srv://<username>:<password>@<cluster-name>?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    

Zarządzaj użytkownikami

Tworzy nowego użytkownika w klastrze, w którym uruchamiasz polecenie. Polecenie createUser zwraca zduplikowany błąd użytkownika, jeśli użytkownik już istnieje.

  1. Utwórz użytkownika administracyjnego płaszczyzny danych.

    db.runCommand(
      {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
          { role:"clusterAdmin",db:"admin" },
          { role:"readWriteAnyDatabase", db:"admin" }
        ]
      }
    )
    
  2. Utwórz użytkownika tylko do odczytu.

    db.runCommand(
      {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
          { role:"readAnyDatabase",db:"admin" }
        ]
      }
    )
    
  3. Zaktualizuj użytkownika w bazie danych, uruchamiając polecenie updateUser.

    use admin
    
    db.runCommand(
      {
        updateUser:"<username>",
        pwd : "<new cleartext password>"
      }
    )
    

    Uwaga / Notatka

    Polecenie obsługuje tylko aktualizowanie hasła.

  4. Usuń użytkownika z klastra.

    use admin
    
    db.runCommand(
      {
        dropUser:"<username>"
      }
    )
    
  5. Pobierz szczegółowe informacje o wszystkich użytkownikach natywnych w klastrze lub określ pojedynczego użytkownika, aby uzyskać informacje o ich rolach i innych atrybutach.

    use admin
    
    db.runCommand(
      {
        usersInfo:1
      }
    )