Autentificering er en kritisk komponent i enhver sikkerhedsstrategi. I dag skal vi diskutere SQL Server-godkendelse, og hvordan det er afgørende for at sikre dit SQL Server-miljø, og den rolle, Windows-godkendelse spiller.
Etablering af en forbindelse
Det hele starter med en forbindelse. For at etablere en vellykket databaseforbindelse kræver klienten eller applikationen følgende oplysninger:
- SQL Server fuldt kvalificeret domænenavn
- Forekomstnavn
- Portnummer
- Legitimationsoplysninger (brugernavn og adgangskode) til godkendelse
Antag for eksempel, at du bruger netbank. For at få adgang til din konto skal du indtaste legitimationsoplysninger til godkendelsesformål. Banken identificerer dig, når du angiver gyldige legitimationsoplysninger og giver adgang til sine tjenester efter bekræftelse.
På samme måde skal brugere, når de logger på SQL Server, angive gyldige legitimationsoplysninger, så SQL Server kan godkende deres identitet og give den passende adgang.
SQL Server giver to måder for servergodkendelse:
- Windows-godkendelse
- SQL Server og Windows-godkendelsestilstand (blandet tilstand)
Du kan definere disse godkendelsesmetoder under installationen af SQL Server, eller ændre dem senere via en genstart. Det er afgørende for databaseadministratorer at forstå forskellene mellem disse godkendelsesmetoder og implementere dem i henhold til deres organisations specifikke krav.
Lad os dykke længere ned for at forstå fordelene og ulemperne ved både SQL Server- og Windows-godkendelse.
En oversigt over SQL Server-godkendelse
Databaseadministratorer opretter SQL-logins og giver brugere passende tilladelser til at autentificere sig selv til SQL Server. Brugere skal angive login og adgangskode, mens de opretter forbindelse til SQL Server som vist nedenfor.
Brugerens legitimationsoplysninger valideres gennem de oplysninger, der er gemt i masterdatabasen. Du kan håndhæve følgende politikker for SQL Server-login.
- Håndhæv adgangskodepolitik :Administratorerne kan markere denne mulighed for at implementere Windows-adgangskodepolitikken for SQL Server-login. Det inkluderer angivelse af adgangskodelængde og kompleksitet.
- Tving udløb af adgangskode :Du kan håndhæve den maksimale alder for en adgangskode. Adgangskoden vil være udløbet og skal ændres som defineret af alderskriterierne.
- Brugeren skal ændre adgangskoden ved næste login :Administratoren tildeler en adgangskode under oprettelse af SQL-login. Når brugeren logger på med deres legitimationsoplysninger, skal de angive en ny adgangskode, og administratorerne vil ikke være opmærksomme på denne nye adgangskode.
Bemærk:Alle disse konfigurationer er på det individuelle SQL-loginniveau. Derfor, hvis du har brug for at oprette flere SQL-login, skal du konfigurere hver konto med den påkrævede politik.
Vi kan ikke kun aktivere SQL-godkendelse. For at aktivere det skal du bruge den blandede godkendelsesindstilling, som inkluderer både Windows- og SQL-godkendelse.
Ulemper ved SQL Server-godkendelse
Der er en del begrænsninger og ulemper ved at bruge SQL Server-godkendelse alene.
- Brugere skal huske SQL-loginoplysningerne og angive dem i forbindelsesstrengen, hver gang de opretter forbindelse til SQL Server. Hvis du har flere SQL-servere, kan det være svært for brugeren at holde styr på adgangskoderne for hver instans.
- SQL Server gemmer adgangskoden i masterdatabasen i krypteret (hash) form. Hackere kan stjæle oplysningerne ved at få adgang til databasen. Da disse krypterede legitimationsoplysninger skal sendes over netværket, kan dette øge chancerne for, at brugerlegitimationsoplysninger bliver stjålet.
- Du kan ikke implementere yderligere (tilpassede) kontopolitikker med SQL Server-godkendelseslogins.
- Det øger opgaven med loginstyring for databaseadministratorer. Databaseadministratorer har ikke en central administrationskonsol til at administrere logins på tværs af alle forekomster.
Antag, at du har 500+ SQL-forekomster, og en bruger kræver adgang til alle disse forekomster. I dette tilfælde ville det være en kedelig opgave for databaseadministratoren at oprette forbindelse til hver instans og oprette brugerlogin. På samme måde, hvis en person forlod organisationen, skal databaseadministratoren finde ud af den pågældende persons SQL-logins og fjerne dem fra alle disse forekomster. Dette kan være en meget tidskrævende proces.
- Du kan få forældreløse brugerproblemer, når du flytter en database til forskellige forekomster, og det kan ske på grund af en SID-uoverensstemmelse i master- og brugerdatabasen på den nye forekomst.
- Du skal administrere sikkerhedspolitikkerne for hvert SQL-login. Du kan ikke definere en universel politik for alle konti i din organisation. For et stort databasefodaftryk er det en besværlig opgave at definere politikken for hvert enkelt login.
Best use cases for SQL Server-godkendelse
- Det kan hjælpe ældre programmer og tredjepartssoftware med at forbinde databaser, hvis de ikke understøtter Windows (AD)-godkendelse.
- Du kan kræve, at brugere fra domæner, der ikke er tillid til, skal oprette forbindelse til SQL Server. I dette tilfælde kan applikationen angive SQL-logins i forbindelsesstrengene og oprette forbindelse til databasen.
- At forbinde selvstændige SQL-instanser, der ikke er en del af Active Directory (AD)-grupper.
- Det kan hjælpe SQL Server med at understøtte webapplikationer, hvor brugere opretter deres egne identiteter.
- Administratorerne deler et fælles id til at oprette forbindelse til SQL Server ved hjælp af Active Directory-godkendelse i nogle få tilfælde. Denne forbindelsespooling er ikke en god praksis. I dette tilfælde kan du oprette separate logins for hver bruger og oprette forbindelse til databasen ved hjælp af deres legitimationsoplysninger.
- Hvis du implementerer SQL Database i skyen, dvs. Azure SQL Database eller AWS RDS, får du som standard loginoplysninger til SQL Server-godkendelse. Senere, hvis det er nødvendigt, kan du konfigurere AD-baseret godkendelse.
- Du kan bruge den til at oprette forbindelse fra krydsoperativsystemer såsom Linux og macOS.
En oversigt over Windows-godkendelse
I Windows-godkendelse skal brugeren først godkende sig selv i Active Directory. SQL Server godkender brugere gennem Windows-hovedtokenet i operativsystemet. Med det beder SQL Server ikke om en adgangskode til identitetsvalidering. Derfor bekræfter Windows brugernes identitet til godkendelse. SQL Server gemmer ikke legitimationsoplysningerne i Windows-godkendelsen. Forbindelsen ved hjælp af Windows-godkendelse kaldes en betroet eller integreret forbindelse.
Bemærk:Windows-godkendelse er standardgodkendelsesmetoden, når du installerer SQL Server.
Fordele ved Windows-godkendelse
- Windows-godkendelse er en sikker måde at oprette forbindelse til SQL Server, og den bruger tokens og SPN'er til godkendelsesformål ved hjælp af Kerberos-godkendelsesprotokollen. Derfor sender den ikke adgangskoder på tværs af netværket, og den sikrer at stjæle adgangskoder på tværs af netværket.
- SQL Server gemmer ikke brugerens legitimationsoplysninger.
- Den bruger Kerberos-sikkerhedsprotokol, og du kan implementere adgangskodepolitikker, såsom komplekse adgangskoder, kontolåse og udløb af adgangskode. Denne adgangskodepolitik kan implementeres på organisationsniveau på tværs af alle servere. Derfor kan du kontrollere brugersikkerhedspolitikker på organisationsniveau i stedet for på det individuelle login-niveau som med SQL Server-godkendelse.
- Windows-godkendelse muliggør adskillelse af opgaver. Active Directory (AD)-teamet administrerer AD-brugerne. Hvorimod DBA tilføjer AD-brugere i SQL-forekomster og giver passende tilladelser.
- Active Directory hjælper med at oprette Windows-grupper. AD-teamet kan tilføje flere personer, der kræver lige adgang til en AD-gruppe. Senere kan du tilføje gruppen i SQL-instansen og give tilladelser på gruppeniveau. Derfor, hvis en ny person tilslutter sig, når han først er en del af AD-gruppen, gives databaseadgang automatisk på tværs af serveren, hvor denne AD-gruppe findes. På samme måde, når en bruger flytter fra organisationen, og deres id er fjernet fra disse AD-grupper, kan de ikke længere få adgang til databasen.
Ulemper ved Windows-godkendelse
- Hvis du kun bruger Windows-godkendelse til SQL Server, bør alle brugere være en del af Active Directory.
- DBA'er har ikke kontrol over AD-logins og grupper.
- AD-gruppemedlemskabet er ikke kendt af DBA. Du får ikke en notifikation, hvis en bruger tilføjes eller fjernes fra AD-grupperne.
Oversigt
Dette blogindlæg skitserer nøglekomponenterne i SQL Server-godkendelse og Windows-godkendelse. Jeg håber, det hjælper dig med at forstå forskellene mellem disse godkendelsesmetoder for at beslutte, hvilken der fungerer bedst for din virksomhed og dine forhold.
SQL Server-godkendelse kan bruges på samme maskine som SQL Server eller på en fjernforbindelse. Hvis du arbejder i et Active Directory-miljø, anbefales det at bruge Windows-godkendelse. Hvis du arbejder i et ikke-Active Directory-miljø, kan du bruge SQL Server-godkendelse til databaseforbindelser.
Windows-godkendelse giver mere sikkerhed og fleksibilitet til at administrere logins i SQL Server. Derfor bør du bruge det, når det er muligt.