Skydda en dedikerad SQL-pool (tidigare SQL DW) i Azure Synapse Analytics

Den här artikeln beskriver grunderna för att skydda din dedikerade SQL-pool (tidigare SQL DW). I den här artikeln kommer du särskilt igång med resurser för att begränsa åtkomst, skydda data och övervaka aktiviteter med hjälp av en dedikerad SQL-pool (tidigare SQL DW).

Anslutningssäkerhet

Anslutningssäkerhet avser hur du begränsar och säkrar anslutningar till databasen med hjälp av brandväggsregler och krypterad anslutning.

Brandväggsregler används av både den logiska SQL-servern och dess databaser för att avvisa anslutningsförsök från IP-adresser som inte uttryckligen har godkänts. Om du vill tillåta anslutningar från programmets eller klientdatorns offentliga IP-adress måste du först skapa en brandväggsregel på servernivå med hjälp av Azure-portalen, REST API eller PowerShell.

Som bästa praxis bör du begränsa de IP-adressintervall som tillåts via brandväggen på servernivå så mycket som möjligt. Om du vill komma åt din dedikerade SQL-pool (tidigare SQL DW) från den lokala datorn kontrollerar du att brandväggen i nätverket och den lokala datorn tillåter utgående kommunikation på TCP-port 1433.

Dedikerad SQL-pool (tidigare SQL DW) använder IP-brandväggsregler på servernivå. Den stöder inte IP-brandväggsregler på databasnivå. Mer information finns i Brandväggsregler för Azure SQL Database

Anslut joner till din dedikerade SQL-pool (tidigare SQL DW) krypteras som standard. Ändringar av anslutningsinställningar för att inaktivera kryptering ignoreras.

Autentisering

Autentisering refererar till hur du styrkt din identitet vid anslutning till databasen. Dedikerad SQL-pool (tidigare SQL DW) stöder för närvarande SQL Server-autentisering med ett användarnamn och lösenord och med Microsoft Entra-ID.

När du skapade servern för databasen angav du inloggningen "serveradministratör" med ett användarnamn och lösenord. Med dessa autentiseringsuppgifter kan du autentisera till valfri databas på servern som databasägare eller "dbo" via SQL Server-autentisering.

Men som bästa praxis bör organisationens användare använda ett annat konto för att autentisera. På så sätt kan du begränsa de behörigheter som beviljats programmet och minska risken för skadlig aktivitet om programkoden är sårbar för en SQL-inmatningsattack.

Om du vill skapa en SQL Server-autentiserad användare ansluter du till huvuddatabasen på servern med inloggningen för serveradministratören och skapar en ny serverinloggning. Det är en bra idé att även skapa en användare i huvuddatabasen. Om du skapar en användare i huvudservern kan en användare logga in med hjälp av verktyg som SSMS utan att ange ett databasnamn. Det gör också att de kan använda objektutforskaren för att visa alla databaser på en server.

-- Connect to master database and create a login
CREATE LOGIN ApplicationLogin WITH PASSWORD = 'Str0ng_password';
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;

Anslut sedan till din dedikerade SQL-pool (tidigare SQL DW) med inloggningen för serveradministratören och skapa en databasanvändare baserat på den serverinloggning som du skapade.

-- Connect to the database and create a database user
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;

Om du vill ge en användare behörighet att utföra ytterligare åtgärder, till exempel att skapa inloggningar eller skapa nya databaser, tilldelar du användaren till rollerna Loginmanager och dbmanager i huvuddatabasen.

Mer information om dessa ytterligare roller och autentisering till en SQL Database finns i Hantera databaser och inloggningar i Azure SQL Database. Mer information om hur du ansluter med Microsoft Entra-ID finns i Anslut ing med hjälp av Microsoft Entra-autentisering.

Auktorisering

Auktorisering refererar till vad du kan göra i en databas när du har autentiserats och anslutits. Behörigheter för auktorisering bestäms av rollmedlemskap och behörigheter. Ett bra tips är att du ska ge användare så få behörigheter som möjligt. Om du vill hantera roller kan du använda följande lagrade procedurer:

EXEC sp_addrolemember 'db_datareader', 'ApplicationUser'; -- allows ApplicationUser to read data
EXEC sp_addrolemember 'db_datawriter', 'ApplicationUser'; -- allows ApplicationUser to write data

Serveradministratörskontot som du ansluter med är medlem i db_owner som har behörighet att göra vad som helst i databasen. Spara det här kontot för att distribuera schemauppgraderingar och andra hanteringsåtgärder. Använd kontot "ApplicationUser" med mer begränsade behörigheter för att ansluta från ditt program till databasen med den minsta behörigheten som krävs av programmet.

Det finns sätt att ytterligare begränsa vad en användare kan göra i databasen:

  • Med detaljerade behörigheter kan du styra vilka åtgärder du kan utföra på enskilda kolumner, tabeller, vyer, scheman, procedurer och andra objekt i databasen. Använd detaljerade behörigheter för att ha mest kontroll och bevilja de minsta behörigheter som krävs.
  • Andra databasroller än db_datareader och db_datawriter kan användas för att skapa mer kraftfulla programanvändarkonton eller mindre kraftfulla hanteringskonton. De inbyggda fasta databasrollerna är ett enkelt sätt att bevilja behörigheter, men kan resultera i att fler behörigheter beviljas än vad som är nödvändigt.
  • Lagrade procedurer kan användas för att begränsa de åtgärder som kan utföras i databasen.

I följande exempel ges läsbehörighet till ett användardefinierat schema.

--CREATE SCHEMA Test
GRANT SELECT ON SCHEMA::Test to ApplicationUser

Hantering av databaser och servrar från Azure-portalen eller användning av Azure Resource Manager-API:et styrs av ditt portalanvändarkontos rolltilldelningar. Mer information finns i Tilldela Azure-roller med Azure-portalen.

Kryptering

transparent datakryptering (TDE) hjälper till att skydda mot hot om skadlig aktivitet genom att kryptera och dekryptera dina data i vila. När du krypterar databasen krypteras associerade säkerhetskopior och transaktionsloggfiler utan att det krävs några ändringar i dina program. TDE krypterar lagringen av en hel databas med hjälp av en symmetrisk nyckel kallad databaskrypteringsnyckeln.

I SQL Database skyddas databaskrypteringsnyckeln av ett inbyggt servercertifikat. Det inbyggda servercertifikatet är unikt för varje server. Microsoft roterar automatiskt dessa certifikat minst var 90:e dag. Krypteringsalgoritmen som används är AES-256. En allmän beskrivning av TDE finns i transparent datakryptering.

Du kan kryptera databasen med hjälp av Azure-portalen eller T-SQL.

Nästa steg

Mer information och exempel på hur du ansluter till ditt lager med olika protokoll finns i Anslut till en dedikerad SQL-pool (tidigare SQL DW).