Databasetoegang verlenen tot SQL Database, SQL Managed Instance, en Azure Synapse Analytics

VAN TOEPASSING OP: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics

In dit artikel leert u het volgende:

  • Opties voor het configureren Azure SQL Database, Azure SQL Managed Instance en Azure Synapse Analytics om gebruikers in staat te stellen beheertaken uit te voeren en toegang te krijgen tot de gegevens die zijn opgeslagen in deze databases.
  • De toegangs- en autorisatieconfiguratie na het maken van een nieuwe server.
  • Aanmeldingen en gebruikersaccounts toevoegen aan de hoofddatabase en gebruikersaccounts en deze accounts vervolgens beheerdersmachtigingen verlenen.
  • Gebruikersaccounts toevoegen aan gebruikersdatabases, gekoppeld aan aanmeldingen of als ingesloten gebruikersaccounts.
  • Configureer gebruikersaccounts met machtigingen in gebruikersdatabases met behulp van databaserollen en expliciete machtigingen.

Belangrijk

Databases in Azure SQL Database, Azure SQL Managed Instance en Azure Synapse worden in de rest van dit artikel gezamenlijk databases genoemd. De server verwijst naar de server die databases beheert voor Azure SQL Database en Azure Synapse.

Verificatie en autorisatie

Verificatie is het proces waarbij wordt bewezen dat de gebruiker is wie hij of zij claimt te zijn. Een gebruiker maakt verbinding met een database met behulp van een gebruikersaccount. Wanneer een gebruiker verbinding probeert te maken met een database, geeft deze een gebruikersaccount en verificatiegegevens op. De gebruiker wordt geverifieerd met een van de volgende twee verificatiemethoden:

  • SQL-verificatie.

    Met deze verificatiemethode verstuurt de gebruiker de naam van een gebruikersaccount en het bijbehorende wachtwoord om verbinding te maken. Dit wachtwoord wordt opgeslagen in de hoofddatabase voor gebruikersaccounts die zijn gekoppeld aan een aanmelding of zijn opgeslagen in de database met de gebruikersaccounts die niet zijn gekoppeld aan een aanmelding.

  • Azure Active Directory-verificatie

    Met deze verificatiemethode verstuurt de gebruiker een gebruikersaccountnaam en vraagt deze de service de referentiegegevens te gebruiken die zijn opgeslagen in Azure Active Directory (Azure AD).

Aanmeldingen en gebruikers: een gebruikersaccount in een database kan worden gekoppeld aan een aanmelding die is opgeslagen in de hoofddatabase of kan een gebruikersnaam zijn die is opgeslagen in een afzonderlijke database.

  • Een aanmelding is een afzonderlijk account in de hoofddatabase waaraan een gebruikersaccount in een of meer databases kan worden gekoppeld. Bij een aanmelding worden de aanmeldingsgegevens voor het gebruikersaccount bij de aanmelding opgeslagen.
  • Een gebruikersaccount is een individueel account in een database die mogelijk, maar niet hoeft te zijn, gekoppeld aan een aanmelding. Bij een gebruikersaccount dat niet is gekoppeld aan een aanmelding, worden de aanmeldingsgegevens opgeslagen met het gebruikersaccount.

Autorisatie voor toegang tot gegevens en het uitvoeren van verschillende acties wordt beheerd met behulp van databaserollen en expliciete machtigingen. Autorisatie verwijst naar de machtigingen die zijn toegewezen aan een gebruiker en bepaalt wat die gebruiker mag doen. Autorisatie wordt beheerd door de databaserollidmaatschap en machtigingen op objectniveau van uw gebruikersaccount. Het wordt aanbevolen om gebruikers de minimaal benodigde bevoegdheden te verlenen.

Bestaande aanmeldingen en gebruikersaccounts na het maken van een nieuwe database

Wanneer u de Azure SQL implementeert, geeft u een beheerders-aanmelding en een bijbehorend wachtwoord voor die aanmelding op. Dit beheerdersaccount heet Serverbeheerder. De volgende configuratie van aanmeldingen en gebruikers in de hoofd- en gebruikersdatabases vindt plaats tijdens de implementatie:

  • Een SQL-aanmelding met beheerdersbevoegdheden wordt gemaakt met behulp van de aanmeldingsnaam die u hebt opgegeven. Een aanmelding is een individueel gebruikersaccount voor aanmelding bij SQL Database, SQL Managed Instance en Azure Synapse.
  • Aan deze aanmelding worden volledige beheerdersmachtigingen voor alle databases verleend als principal op serverniveau. De aanmelding heeft alle beschikbare machtigingen en kan niet worden beperkt. In een SQL Managed Instance wordt deze aanmelding toegevoegd aan de vaste serverrol sysadmin (deze rol bestaat niet in Azure SQL Database).
  • Voor deze aanmelding wordt in elke gebruikersdatabase een gebruikersaccount met de naam dbo gemaakt. De dbo-gebruiker heeft alle databasemachtigingen in de database en wordt aan de vaste db_owner databaserol toegevoegd. Aanvullende vaste databaserollen worden verder in dit artikel besproken.

Als u de beheerdersaccounts voor een database wilt identificeren, opent u de Azure Portal en navigeert u naar het tabblad Eigenschappen van uw server of beheerd exemplaar.

SQL Server-beheerders

Schermopname met de menuoptie Eigenschappen.

Belangrijk

De aanmeldingsnaam van de beheerder kan niet worden gewijzigd nadat deze is gemaakt. Als u het wachtwoord voor de serverbeheerder opnieuw wilt instellen, gaat u naar de Azure Portal, klikt u op SQL-servers, selecteert u de server in de lijst en klikt u vervolgens op Wachtwoord opnieuw instellen. Als u het wachtwoord voor de SQL Managed Instance opnieuw wilt instellen, gaat u naar Azure Portal, klikt u op het exemplaar en klikt u op Wachtwoord opnieuw instellen. U kunt ook PowerShell of de Azure CLI gebruiken.

Aanvullende aanmeldingen maken en gebruikers met beheerdersmachtigingen

Op dit moment is uw server of beheerd exemplaar alleen geconfigureerd voor toegang met behulp van één SQL-aanmelding en -gebruikersaccount. Als u extra aanmeldingen wilt maken met volledige of gedeeltelijke beheerdersmachtigingen, hebt u de volgende opties (afhankelijk van uw implementatiemodus):

  • Maak een Azure Active Directory beheerdersaccount met volledige beheerdersmachtigingen

    Schakel Azure Active Directory verificatie in en maak een aanmelding van een Azure AD-beheerder. Een Azure Active Directory kan worden geconfigureerd als beheerder van de Azure SQL implementatie met volledige beheerdersmachtigingen. Dit account kan een afzonderlijk account of een beveiligingsgroepsaccount zijn. Er moet een Azure AD-beheerder worden geconfigureerd als u Azure AD-accounts wilt gebruiken om verbinding te maken met SQL Database, SQL Managed Instance of Azure Synapse. Zie de volgende artikelen voor gedetailleerde informatie over het inschakelen van Azure AD Azure SQL voor alle implementatietypen:

  • Maak SQL Managed Instance SQL-aanmeldingen met volledige beheerdersmachtigingen

  • Maak SQL Database SQL-aanmeldingen met beperkte beheerdersmachtigingen

    • Maak een extra SQL-aanmelding in de hoofddatabase.
    • Maak een gebruikersaccount in de hoofddatabase die aan deze nieuwe aanmelding is gekoppeld.
    • Voeg het gebruikersaccount toe aan de , de rol of beide in de database met behulp van de instructie ALTER ROLE (voor Azure Synapse gebruikt u dbmanager de instructie loginmanager master sp_addrolemember gebruiken).

    Notitie

    dbmanager - loginmanager en -rollen hebben geen betrekking op SQL Managed Instance implementaties.

    Leden van deze speciale hoofddatabaserollen voor Azure SQL Database zijn bevoegd om databases te maken en te beheren of om aanmeldingen te maken en te beheren. In databases die zijn gemaakt door een gebruiker die lid is van de rol, wordt het lid aan de vaste databaserol toegeschreven en kan het lid zich aanmelden bij en beheren bij die database met behulp van dbmanager db_owner het dbo gebruikersaccount. Deze rollen hebben geen expliciete machtigingen buiten de hoofddatabase.

    Belangrijk

    U kunt geen extra SQL-aanmelding met volledige beheerdersmachtigingen maken in SQL Database.

Accounts maken voor niet-beheerders

U kunt accounts voor niet-gebruikers met beheerders beheerdersaccounts maken met behulp van een van de volgende twee methoden:

  • Een aanmelding maken

    Maak een SQL-aanmelding in de hoofddatabase. Maak vervolgens een gebruikersaccount in elke database waaraan die gebruiker toegang moet hebben en koppel het gebruikersaccount aan die aanmelding. Deze aanpak heeft de voorkeur wanneer de gebruiker toegang moet hebben tot meerdere databases en u de wachtwoorden gesynchroniseerd wilt houden. Deze benadering heeft echter complexiteit bij gebruik met geo-replicatie, omdat de aanmelding moet worden gemaakt op zowel de primaire server als de secundaire server(s). Zie Configure and manage Azure SQL Database security for geo-restore or failover (Beveiliging van geo-herstel of failoverconfigureren en beheren) voor meer informatie.

  • Een gebruikersaccount maken

    Maak een gebruikersaccount in de database waarvoor een gebruiker toegang nodig heeft (ook wel een ingesloten gebruiker genoemd).

    • Met SQL Database kunt u altijd dit type gebruikersaccount maken.
    • Met SQL Managed Instance ondersteuning voor Azure AD-server-principalskunt u gebruikersaccounts maken om te verifiëren bij de SQL Managed Instance zonder dat databasegebruikers als ingesloten databasegebruiker moeten worden gemaakt.

    Met deze methode worden de gebruikersverificatiegegevens in elke database opgeslagen en automatisch gerepliceerd naar geo-gerepliceerde databases. Als hetzelfde account echter in meerdere databases bestaat en u Azure SQL gebruikt, moet u de wachtwoorden handmatig gesynchroniseerd houden. Als een gebruiker bovendien een account in verschillende databases met verschillende wachtwoorden heeft, kan het onthouden van deze wachtwoorden een probleem worden.

Belangrijk

Als u ingesloten gebruikers wilt maken die zijn toegeschreven aan Azure AD-identiteiten, moet u zijn aangemeld met een Azure AD-account dat een beheerder is in de database in Azure SQL Database. In SQL Managed Instance kan een SQL-aanmelding met machtigingen ook een sysadmin Azure AD-aanmelding of -gebruiker maken.

Zie voor voorbeelden over het maken van aanmeldingen en gebruikers:

Tip

Voor een zelfstudie over beveiliging waarin het maken van gebruikers in Azure SQL Database, zie Zelfstudie: Beveiligde Azure SQL Database.

Vaste en aangepaste databaserollen gebruiken

Nadat u een gebruikersaccount in een database hebt gemaakt, op basis van een aanmelding of als ingesloten gebruiker, kunt u die gebruiker machtigen om verschillende acties uit te voeren en toegang te krijgen tot gegevens in een bepaalde database. U kunt de volgende methoden gebruiken om toegang te verlenen:

  • Databaserollen opgelost

    Voeg het gebruikersaccount toe aan een vaste databaserol. Er zijn 9 vaste databaserollen, elk met een gedefinieerde set machtigingen. De meest voorkomende vaste databaserollen zijn: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter en db_denydatareader. db_owner wordt doorgaans gebruikt voor het verlenen van volledige machtigingen aan slechts enkele gebruikers. De andere vaste databaserollen zijn handig voor het snel verkrijgen van een eenvoudige database voor ontwikkeldoeleinden, maar worden niet aanbevolen voor de meeste productiedatabases. De vaste db_datareader verleent bijvoorbeeld leestoegang tot elke tabel in de database. Dit is meer dan strikt noodzakelijk is.

  • Aangepaste databaserol

    Maak een aangepaste databaserol met behulp van de instructie CREATE ROLE. Met een aangepaste rol kunt u uw eigen door de gebruiker gedefinieerde databaserollen maken en elke rol zorgvuldig de minste machtigingen verlenen die nodig zijn voor de zakelijke behoefte. Vervolgens kunt u gebruikers toevoegen aan de aangepaste rol. Als een gebruiker lid is van meerdere rollen, worden de machtigingen van alle rollen samengevoegd.

  • Machtigingen rechtstreeks verlenen

    Verleen het gebruikersaccount rechtstreeks machtigingen. Er zijn meer dan 100 machtigingen die afzonderlijk kunnen worden verleend of geweigerd in SQL Database. Veel van deze machtigingen zijn genest. De machtiging UPDATE voor een schema bevat bijvoorbeeld de machtiging UPDATE voor elke tabel binnen dat schema. Net als bij de meeste machtigingssystemen gaat de weigering van een machtiging vóór toestemming. Vanwege de geneste aard en het aantal machtigingen kan een nauwkeurig onderzoek nodig zijn om een geschikt machtigingssysteem te ontwerpen voor een goede bescherming van uw database. Start met de lijst van machtigingen in Machtigingen (Database-engine) en controleer de afbeelding op postergrootte van de machtigingen.

Groepen gebruiken

Efficiënt toegangsbeheer maakt gebruik van machtigingen die zijn toegewezen aan Active Directory-beveiligingsgroepen en vaste of aangepaste rollen in plaats van aan afzonderlijke gebruikers.

  • Wanneer u Azure Active Directory verificatie gebruikt, Azure Active Directory gebruikers in een Azure Active Directory beveiligingsgroep. Maak voor de groep een ingesloten databasegebruiker. Voeg een of meer databasegebruikers als lid toe aan aangepaste of ingebouwde databaserollen met de specifieke machtigingen die geschikt zijn voor die groep gebruikers.

  • Wanneer u SQL-verificatie gebruikt, maakt u ingesloten databasegebruikers in de database. Plaats een of meer databasegebruikers in een aangepaste databaserol met specifieke machtigingen die geschikt zijn voor die groep gebruikers.

    Notitie

    U kunt ook groepen gebruiken voor niet-ingesloten databasegebruikers.

Zorg ervoor dat u de volgende functies kunt gebruiken voor het beperken of het verhogen van machtigingen:

Volgende stappen

Zie Beveiligingsoverzicht voor een overzicht van Azure SQL Database en SQL Managed Instance beveiligingsfuncties.