Dela via


Lösenordsprincip

gäller för:SQL Server

SQL Server kan använda mekanismer för Windows-lösenordsprinciper. Lösenordsprincipen gäller för en inloggning som använder SQL Server-autentisering och för en oberoende databasanvändare med lösenord.

SQL Server kan tillämpa samma komplexitets- och förfalloprinciper som används i Windows på lösenord som används i SQL Server. Den här funktionen beror på API:et NetValidatePasswordPolicy .

Anmärkning

Azure SQL Database tillämpar lösenordskomplexitet. Avsnitten för lösenordsförfallodatum och principtillämpning gäller inte för Azure SQL Database.

Information om lösenordsprincip för Azure SQL Managed Instance finns i våra vanliga frågor och svar om SQL Managed Instance.

Lösenordskomplexitet

Principer för lösenordskomplexitet är utformade för att förhindra råstyrkeattacker genom att öka antalet möjliga lösenord. När principen för lösenordskomplexitet tillämpas måste nya lösenord uppfylla följande riktlinjer:

  • Lösenordet innehåller inte användarens kontonamn.

  • Lösenordet är minst åtta tecken långt.

  • Lösenordet innehåller tecken från tre av följande fyra kategorier:

    • Latinska versaler (A till Z)

    • Latinska små bokstäver (a till och med z)

    • Grundläggande 10 siffror (0-9)

    • Icke-numeriska tecken som: utropstecken (!), dollartecken ($), taltecken (#) eller procent (%).

Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.

Lösenordets giltighetstid

Principer för förfallotid för lösenord används för att hantera livslängden för ett lösenord. När SQL Server tillämpar principen för lösenordsförfallotid påminns användarna om att ändra gamla lösenord och konton som har utgångna lösenord inaktiveras.

Policygenomförande

Tillämpningen av lösenordsprincipen kan konfigureras separat för varje SQL Server-inloggning. Använd ALTER LOGIN för att konfigurera alternativen för lösenordsprinciper för en SQL Server-inloggning. Följande regler gäller för konfigurationen av tvingande lösenordsprinciper:

  • När CHECK_POLICY ändras till PÅ uppstår följande beteenden:

    • CHECK_EXPIRATION är också inställt på PÅ om det inte uttryckligen är inställt på OFF.

    • Lösenordshistoriken initieras med värdet för den aktuella lösenordshashen.

    • Varaktighet för kontoutelåsning, tröskelvärde för kontoutelåsning och återställning av kontoutelåsningsräknare efter har också aktiverats.

  • När CHECK_POLICY ändras till OFF uppstår följande beteenden:

    • CHECK_EXPIRATION är också inställt på OFF.

    • Lösenordshistoriken rensas.

    • Värdet för lockout_time återställs.

Vissa kombinationer av principalternativ stöds inte.

  • Om MUST_CHANGE anges måste CHECK_EXPIRATION och CHECK_POLICY anges till PÅ. Annars misslyckas -instruktionen.

  • Om CHECK_POLICY är inställt på AV kan CHECK_EXPIRATION inte anges till PÅ. En ALTER LOGIN-instruktion som har den här kombinationen av alternativ misslyckas.

  • Om du anger CHECK_POLICY = PÅ förhindras att lösenord skapas som:

    • Null eller tomt

    • Samma som namnet på datorn eller inloggningen

    • Något av följande: password, admin, administrator, , sasysadmin

Säkerhetsprincipen kan anges i Windows eller tas emot från domänen. Om du vill visa lösenordspolicyn på datorn använder du Lokal säkerhetspolicy MMC-snapin-modul (secpol.msc).

Anmärkning

För SQL Server-inloggningar som har CHECK_POLICY aktiverat, om du kör ALTER LOGIN och inte inkluderar OLD_PASSWORD i kommandot för att ändra lösenordet, ignoreras Framtvinga lösenordshistorik . Detta är ett avsiktligt beteende för att tillåta lösenordsåterställning, trots tidigare använda lösenord. Andra kontroller som är associerade med CHECK_POLICY, inklusive längd och komplexitet, kontrolleras oavsett om OLD_PASSWORD används.

Kontrollera information om SQL-användarens lösenordspolicy

Du kan granska över principer för SQL-användarlösenord och förfallodatum för SQL Server med följande fråga. Även om följande fråga också fungerar i Azure SQL Database tillämpas endast lösenordskomplexitet i Azure SQL Database.

SELECT name,
    is_policy_checked,
    is_expiration_checked,
    LOGINPROPERTY(name, 'IsMustChange') AS IsMustChange,
    LOGINPROPERTY(name, 'IsLocked') AS IsLocked,
    LOGINPROPERTY(name, 'LockoutTime') AS LockoutTime,
    LOGINPROPERTY(name, 'PasswordLastSetTime') AS PasswordLastSetTime,
    LOGINPROPERTY(name, 'IsExpired') AS IsExpired,
    LOGINPROPERTY(name, 'BadPasswordCount') AS BadPasswordCount,
    LOGINPROPERTY(name, 'BadPasswordTime') AS BadPasswordTime,
    LOGINPROPERTY(name, 'HistoryLength') AS HistoryLength,
    modify_date
FROM sys.sql_logins;

SKAPA ANVÄNDARKONTO

ALTER LOGIN

SKAPA ANVÄNDARE

ALTER USER

Skapa ett konto

Skapa en databasanvändare