Udostępnij za pośrednictwem


ALTER LOGIN (Transact-SQL)

Zmienia właściwości konta logowania programu SQL Server.

Transact-SQL konwencje składni

Nuta

microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).

Wybieranie produktu

W poniższym wierszu wybierz nazwę produktu, którą cię interesuje, i zostanie wyświetlona tylko informacja o tym produkcie.

* SQL Server *  

usługi SQL Database

usługi SQL Managed Instance

 

SQL Server

Składnia dla programu SQL Server

ALTER LOGIN login_name
    {
    <status_option>
    | WITH <set_option> [ , ... ]
    | <cryptographic_credential_option>
    }
[;]

<status_option> ::=
        ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password' | hashed_password HASHED
    [
      OLD_PASSWORD = 'oldpassword'
      | <password_option> [ <password_option> ]
    ]
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }
    | CREDENTIAL = credential_name
    | NO CREDENTIAL

<password_option> ::=
    MUST_CHANGE | UNLOCK

<cryptographic_credentials_option> ::=
    ADD CREDENTIAL credential_name
  | DROP CREDENTIAL credential_name

Argumenty

login_name

Określa nazwę identyfikatora logowania programu SQL Server, który jest zmieniany. Identyfikatory logowania domeny muszą być ujęte w nawiasy w formacie [<domain>\<user>].

WŁĄCZ | WYŁĄCZAĆ

Włącza lub wyłącza to logowanie. Wyłączenie logowania nie ma wpływu na zachowanie identyfikatorów logowania, które są już połączone. (Użyj instrukcji KILL, aby zakończyć istniejące połączenie). Wyłączone logowania zachowują swoje uprawnienia i nadal mogą być personifikowane.

PASSWORD = 'password'

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa hasło do zmienianego identyfikatora logowania. W hasłach jest rozróżniana wielkość liter.

HASŁO = hashed_password

Dotyczy tylko słowa kluczowego HASHED. Określa wartość skrótu hasła dla tworzonego identyfikatora logowania.

Ważny

Gdy logowanie (lub użytkownik zawartej bazy danych) łączy się i jest uwierzytelniane, połączenie buforuje informacje o tożsamości logowania. W przypadku logowania do uwierzytelniania systemu Windows zawiera to informacje o członkostwie w grupach systemu Windows. Tożsamość logowania pozostaje uwierzytelniona, o ile połączenie jest utrzymywane. Aby wymusić zmiany tożsamości, takie jak resetowanie hasła lub zmiana członkostwa w grupie systemu Windows, logowanie musi wylogować się z urzędu uwierzytelniania (Windows lub SQL Server) i zalogować się ponownie. Członek sysadmin stałej roli serwera lub dowolny identyfikator logowania z uprawnieniami ALTER ANY CONNECTION może użyć KILL polecenia, aby zakończyć połączenie i wymusić ponowne nawiązanie połączenia. Program SQL Server Management Studio może ponownie używać informacji o połączeniu podczas otwierania wielu połączeń z oknami Eksplorator obiektów i Edytor zapytań. Zamknij wszystkie połączenia, aby wymusić ponowne nawiązanie połączenia.

MIESZANY

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, że hasło wprowadzone po argumencie PASSWORD jest już skrótem. Jeśli ta opcja nie zostanie wybrana, hasło zostanie skrócone przed zapisaniem w bazie danych. Ta opcja powinna być używana tylko do synchronizacji logowania między dwoma serwerami. Nie używaj opcji HASHED, aby rutynowo zmieniać hasła.

OLD_PASSWORD = 'old_password'

Dotyczy tylko identyfikatorów logowania programu SQL Server. Bieżące hasło logowania, do którego zostanie przypisane nowe hasło. W hasłach jest rozróżniana wielkość liter.

MUST_CHANGE

Dotyczy tylko identyfikatorów logowania programu SQL Server. Jeśli ta opcja jest dołączona, program SQL Server monituje o zaktualizowane hasło przy pierwszym użyciu zmienionego identyfikatora logowania.

DEFAULT_DATABASE = bazy danych

Określa domyślną bazę danych, która ma zostać przypisana do nazwy logowania.

DEFAULT_LANGUAGE = języka

Określa domyślny język, który ma być przypisany do logowania. Domyślnym językiem dla wszystkich logowań usługi SQL Database jest angielski i nie można go zmienić. Domyślny język logowania sa w programie SQL Server w systemie Linux to angielski, ale można go zmienić.

NAME = login_name

Nowa nazwa logowania, która jest zmieniana. Jeśli jest to identyfikator logowania systemu Windows, identyfikator SID podmiotu zabezpieczeń systemu Windows odpowiadającego nowej nazwie musi być zgodny z identyfikatorem SID skojarzonym z identyfikatorem logowania w programie SQL Server. Nowa nazwa logowania programu SQL Server nie może zawierać znaku ukośnika odwrotnego (\).

CHECK_EXPIRATION = { ON | WYŁ. }

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, czy zasady wygasania haseł powinny być wymuszane podczas tego logowania. Wartość domyślna to OFF.

CHECK_POLICY = { ON | WYŁ. }

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, że zasady haseł systemu Windows komputera, na którym działa program SQL Server, powinny być wymuszane na tym logowaniu. Wartość domyślna to WŁĄCZONE.

CREDENTIAL = credential_name

Nazwa poświadczenia, które mają zostać zamapowane na identyfikator logowania programu SQL Server. Poświadczenia muszą już istnieć na serwerze. Aby uzyskać więcej informacji, zobacz Credentials. Nie można zamapować poświadczenia na identyfikator logowania sa.

BRAK POŚWIADCZEŃ

Usuwa wszelkie istniejące mapowanie nazwy logowania na poświadczenia serwera. Aby uzyskać więcej informacji, zobacz Credentials.

ODBLOKOWAĆ

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, że nazwa logowania, która jest zablokowana, powinna zostać odblokowana.

DODAWANIE POŚWIADCZEŃ

Dodaje poświadczenie dostawcy zarządzania kluczami rozszerzalnymi (EKM) do identyfikatora logowania. Aby uzyskać więcej informacji, zobacz Extensible Key Management (EKM).

UPUŚĆ POŚWIADCZENIA

Usuwa poświadczenie dostawcy zarządzania kluczami rozszerzalnymi (EKM) z identyfikatora logowania. Aby uzyskać więcej informacji, zobacz [Extensible Key Management (EKM)] (.. /.. /relational-databases/security/encryption/extensible-key-management-ekm.md).

Uwagi

Jeśli CHECK_POLICY jest ustawiona na WŁ., nie można użyć argumentu HASHED.

Po zmianie CHECK_POLICY na WŁ. następuje następujące zachowanie:

  • Historia haseł jest inicjowana z wartością bieżącego skrótu hasła.

Gdy CHECK_POLICY zostanie zmieniona na WYŁ., wystąpi następujące zachowanie:

  • CHECK_EXPIRATION jest również ustawiona na WARTOŚĆ WYŁĄCZONE.
  • Historia haseł jest czyszczone.
  • Wartość lockout_time jest resetowany.

Jeśli określono MUST_CHANGE, CHECK_EXPIRATION i CHECK_POLICY muszą być ustawione na WARTOŚĆ WŁĄCZONE. W przeciwnym razie instrukcja kończy się niepowodzeniem.

Jeśli CHECK_POLICY jest ustawiona na WYŁ., CHECK_EXPIRATION nie można ustawić wartości WŁĄCZONE. Instrukcja ALTER LOGIN, która zawiera tę kombinację opcji, kończy się niepowodzeniem.

Nie można użyć polecenia ALTER LOGIN z argumentem DISABLE, aby odmówić dostępu do grupy systemu Windows. Na przykład ALTER LOGIN [<domain>\<group>] DISABLE zwraca następujący komunikat o błędzie:

"Msg 15151, Level 16, State 1, Line 1
Cannot alter the login '*Domain\Group*', because it doesn't exist or you don't have permission.

Jest to zgodnie z projektem.

W usłudze SQL Database dane logowania wymagane do uwierzytelniania reguł zapory na poziomie serwera i połączenia są tymczasowo buforowane w każdej bazie danych. Ta pamięć podręczna jest okresowo odświeżona. Aby wymusić odświeżenie pamięci podręcznej uwierzytelniania i upewnić się, że baza danych ma najnowszą wersję tabeli logins, wykonaj DBCC FLUSHAUTHCACHE.

Uprawnienia

Wymaga uprawnienia ALTER ANY LOGIN.

Jeśli jest używana opcja CREDENTIAL, wymagane jest również uprawnienie ALTER ANY CREDENTIAL.

Jeśli identyfikator logowania, który jest zmieniany, jest elementem członkowskim sysadmin stałej roli serwera lub udzielenia uprawnień SERWERA KONTROLI, również wymaga uprawnień CONTROL SERVER podczas wprowadzania następujących zmian:

  • Resetowanie hasła bez podawania starego hasła.
  • Włączanie MUST_CHANGE, CHECK_POLICY lub CHECK_EXPIRATION.
  • Zmiana nazwy logowania.
  • Włączanie lub wyłączanie logowania.
  • Mapowanie nazwy logowania na inne poświadczenia.

Podmiot zabezpieczeń może zmienić hasło, język domyślny i domyślną bazę danych na potrzeby własnego logowania.

Przykłady

A. Włączanie wyłączonego logowania

Poniższy przykład umożliwia logowanie Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Zmienianie hasła logowania

Poniższy przykład zmienia hasło logowania Mary5 na silne hasło.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Zmienianie hasła logowania po zalogowaniu się jako identyfikator logowania

Jeśli próbujesz zmienić hasło logowania, za pomocą którego użytkownik jest aktualnie zalogowany, i nie masz uprawnień ALTER ANY LOGIN, musisz określić opcję OLD_PASSWORD.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>' OLD_PASSWORD = '<oldWeakPasswordHere>';

D. Zmienianie nazwy logowania

Poniższy przykład zmienia nazwę Mary5 logowania na John2.

ALTER LOGIN Mary5 WITH NAME = John2;

E. Mapuj identyfikator logowania na poświadczenia

Poniższy przykład mapuje John2 logowania na Custodian04poświadczeń .

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

F. Mapuj identyfikator logowania na poświadczenia rozszerzonego zarządzania kluczami

Poniższy przykład mapuje Mary5 logowania na EKMProvider1poświadczeń EKM.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Odblokowywanie logowania

Aby odblokować identyfikator logowania programu SQL Server, wykonaj następującą instrukcję, zastępując **** odpowiednim hasłem konta.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO

Aby odblokować logowanie bez zmiany hasła, wyłącz zasady sprawdzania, a następnie ponownie.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Zmienianie hasła logowania przy użyciu protokołu HASHED

Poniższy przykład zmienia hasło logowania TestUser na wartość już skróconą.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

* SQL Database *

usługi SQL Managed Instance

 

SQL Database

Składnia dla usługi Azure SQL Database

ALTER LOGIN login_name
  {
      <status_option>
    | WITH <set_option> [ , .. .n ]
  }
[;]

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password'
    [
      OLD_PASSWORD = 'oldpassword'
    ]
    | NAME = login_name

Argumenty

login_name

Określa nazwę identyfikatora logowania programu SQL Server, który jest zmieniany. Identyfikatory logowania do domeny muszą być ujęte w nawiasy w formacie [domena\użytkownik].

WŁĄCZ | WYŁĄCZAĆ

Włącza lub wyłącza to logowanie. Wyłączenie logowania nie ma wpływu na zachowanie identyfikatorów logowania, które są już połączone. (Użyj instrukcji KILL, aby zakończyć istniejące połączenie). Wyłączone logowania zachowują swoje uprawnienia i nadal mogą być personifikowane.

PASSWORD = 'password'

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa hasło do zmienianego identyfikatora logowania. W hasłach jest rozróżniana wielkość liter.

Stale aktywne połączenia z usługą SQL Database wymagają ponownego uwierzytelniania (wykonywanego przez aparat bazy danych) co najmniej co 10 godzin. Aparat bazy danych próbuje ponownie uwierzytelnić przy użyciu pierwotnie przesłanego hasła i nie jest wymagane żadne dane wejściowe użytkownika. Ze względu na wydajność, gdy hasło jest resetowane w usłudze SQL Database, połączenie nie jest ponownie uwierzytelniane, nawet jeśli połączenie jest resetowane z powodu buforowania połączeń. Różni się to od zachowania lokalnego programu SQL Server. Jeśli hasło zostało zmienione od czasu, gdy połączenie zostało początkowo autoryzowane, połączenie musi zostać przerwane i nowe połączenie nawiązane przy użyciu nowego hasła. Użytkownik z uprawnieniem KILL DATABASE CONNECTION może jawnie przerwać połączenie z usługą SQL Database za pomocą polecenia KILL. Aby uzyskać więcej informacji, zobacz KILL.

Ważny

Gdy logowanie (lub użytkownik zawartej bazy danych) łączy się i jest uwierzytelniane, połączenie buforuje informacje o tożsamości logowania. W przypadku logowania do uwierzytelniania systemu Windows zawiera to informacje o członkostwie w grupach systemu Windows. Tożsamość logowania pozostaje uwierzytelniona, o ile połączenie jest utrzymywane. Aby wymusić zmiany tożsamości, takie jak resetowanie hasła lub zmiana członkostwa w grupie systemu Windows, logowanie musi wylogować się z urzędu uwierzytelniania (Windows lub SQL Server) i zalogować się ponownie. Członek sysadmin stałej roli serwera lub dowolny identyfikator logowania przy użyciu ALTER ANY CONNECTION uprawnienia może użyć KILL polecenie, aby zakończyć połączenie i wymusić ponowne nawiązanie połączenia. Program SQL Server Management Studio może ponownie używać informacji o połączeniu podczas otwierania wielu połączeń z oknami Eksplorator obiektów i Edytor zapytań. Zamknij wszystkie połączenia, aby wymusić ponowne nawiązanie połączenia.

OLD_PASSWORD = 'old_password'

Dotyczy tylko identyfikatorów logowania programu SQL Server. Bieżące hasło logowania, do którego zostanie przypisane nowe hasło. W hasłach jest rozróżniana wielkość liter.

NAME = login_name

Nowa nazwa logowania, która jest zmieniana. Jeśli jest to identyfikator logowania systemu Windows, identyfikator SID podmiotu zabezpieczeń systemu Windows odpowiadającego nowej nazwie musi być zgodny z identyfikatorem SID skojarzonym z identyfikatorem logowania w programie SQL Server. Nowa nazwa logowania programu SQL Server nie może zawierać znaku ukośnika odwrotnego (\).

Uwagi

W usłudze SQL Database dane logowania wymagane do uwierzytelniania reguł zapory na poziomie serwera i połączenia są tymczasowo buforowane w każdej bazie danych. Ta pamięć podręczna jest okresowo odświeżona. Aby wymusić odświeżenie pamięci podręcznej uwierzytelniania i upewnić się, że baza danych ma najnowszą wersję tabeli logins, wykonaj DBCC FLUSHAUTHCACHE.

Uprawnienia

Wymaga uprawnienia ALTER ANY LOGIN.

Jeśli identyfikator logowania, który jest zmieniany, jest elementem członkowskim sysadmin stałej roli serwera lub udzielenia uprawnień SERWERA KONTROLI, również wymaga uprawnień CONTROL SERVER podczas wprowadzania następujących zmian:

  • Resetowanie hasła bez podawania starego hasła.
  • Zmiana nazwy logowania.
  • Włączanie lub wyłączanie logowania.
  • Mapowanie nazwy logowania na inne poświadczenia.

Podmiot zabezpieczeń może zmienić hasło dla własnego identyfikatora logowania.

Przykłady

Te przykłady obejmują również przykłady użycia innych produktów SQL. Zobacz, które poprzednie argumenty są obsługiwane.

A. Włączanie wyłączonego logowania

Poniższy przykład umożliwia logowanie Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Zmienianie hasła logowania

Poniższy przykład zmienia hasło logowania Mary5 na silne hasło.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Zmienianie nazwy logowania

Poniższy przykład zmienia nazwę Mary5 logowania na John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapuj identyfikator logowania na poświadczenia

Poniższy przykład mapuje John2 logowania na Custodian04poświadczeń .

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapuj identyfikator logowania na poświadczenia rozszerzonego zarządzania kluczami

Poniższy przykład mapuje Mary5 logowania na EKMProvider1poświadczeń EKM.

Dotyczy: SQL Server 2008 (10.0.x) i nowszych.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Zmienianie hasła logowania przy użyciu protokołu HASHED

Poniższy przykład zmienia hasło logowania TestUser na wartość już skróconą.

Dotyczy: SQL Server 2008 (10.0.x) i nowszych.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

usługi SQL Database

* SQL Managed Instance *

 

Azure SQL Managed Instance

Składnia dla programu SQL Server i usługi Azure SQL Managed Instance

ALTER LOGIN login_name
    {
    <status_option>
    | WITH <set_option> [ , ... ]
    | <cryptographic_credential_option>
    }
[;]

<status_option> ::=
        ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password' | hashed_password HASHED
    [
      OLD_PASSWORD = 'oldpassword'
      | <password_option> [ <password_option> ]
    ]
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }
    | CREDENTIAL = credential_name
    | NO CREDENTIAL

<password_option> ::=
    MUST_CHANGE | UNLOCK

<cryptographic_credentials_option> ::=
    ADD CREDENTIAL credential_name
  | DROP CREDENTIAL credential_name
-- Syntax for Azure SQL Managed Instance using Microsoft Entra logins

ALTER LOGIN login_name
  {
      <status_option>
    | WITH <set_option> [ , .. .n ]
  }
[;]

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
     DEFAULT_DATABASE = database
   | DEFAULT_LANGUAGE = language

Argumenty

Argumenty mające zastosowanie do logowań SQL i Microsoft Entra

login_name

Określa nazwę identyfikatora logowania programu SQL Server, który jest zmieniany. Identyfikatory logowania firmy Microsoft Entra muszą być określone jako user@domain. Na przykład john.smith@contoso.comlub jako nazwę grupy lub aplikacji firmy Microsoft. W przypadku logowań firmy Microsoft Entra login_name musi odpowiadać istniejącemu identyfikatorowi logowania firmy Microsoft Entra utworzonemu w bazie danych master.

WŁĄCZ | WYŁĄCZAĆ

Włącza lub wyłącza to logowanie. Wyłączenie logowania nie ma wpływu na zachowanie identyfikatorów logowania, które są już połączone. (Użyj instrukcji KILL, aby zakończyć istniejące połączenie). Wyłączone logowania zachowują swoje uprawnienia i nadal mogą być personifikowane.

DEFAULT_DATABASE = bazy danych

Określa domyślną bazę danych, która ma zostać przypisana do nazwy logowania.

DEFAULT_LANGUAGE = języka

Określa domyślny język, który ma być przypisany do logowania. Domyślnym językiem dla wszystkich logowań usługi SQL Database jest angielski i nie można go zmienić. Domyślny język logowania sa w programie SQL Server w systemie Linux to angielski, ale można go zmienić.

Argumenty mające zastosowanie tylko do identyfikatorów logowania SQL

PASSWORD = 'password'

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa hasło do zmienianego identyfikatora logowania. W hasłach jest rozróżniana wielkość liter. Hasła nie mają również zastosowania w przypadku użycia z zewnętrznymi identyfikatorami logowania, takimi jak identyfikatory logowania firmy Microsoft Entra.

Stale aktywne połączenia z usługą SQL Database wymagają ponownego uwierzytelniania (wykonywanego przez aparat bazy danych) co najmniej co 10 godzin. Aparat bazy danych próbuje ponownie uwierzytelnić przy użyciu pierwotnie przesłanego hasła i nie jest wymagane żadne dane wejściowe użytkownika. Ze względu na wydajność, gdy hasło jest resetowane w usłudze SQL Database, połączenie nie jest ponownie uwierzytelniane, nawet jeśli połączenie jest resetowane z powodu buforowania połączeń. Różni się to od zachowania lokalnego programu SQL Server. Jeśli hasło zostało zmienione od czasu, gdy połączenie zostało początkowo autoryzowane, połączenie musi zostać przerwane i nowe połączenie nawiązane przy użyciu nowego hasła. Użytkownik z uprawnieniem KILL DATABASE CONNECTION może jawnie przerwać połączenie z usługą SQL Database za pomocą polecenia KILL. Aby uzyskać więcej informacji, zobacz KILL.

HASŁO = hashed_password

Dotyczy tylko słowa kluczowego HASHED. Określa wartość skrótu hasła dla tworzonego identyfikatora logowania.

MIESZANY

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, że hasło wprowadzone po argumencie PASSWORD jest już skrótem. Jeśli ta opcja nie zostanie wybrana, hasło zostanie skrócone przed zapisaniem w bazie danych. Ta opcja powinna być używana tylko do synchronizacji logowania między dwoma serwerami. Nie używaj opcji HASHED, aby rutynowo zmieniać hasła.

OLD_PASSWORD = 'old_password'

Dotyczy tylko identyfikatorów logowania programu SQL Server. Bieżące hasło logowania, do którego zostanie przypisane nowe hasło. W hasłach jest rozróżniana wielkość liter.

MUST_CHANGE

Dotyczy tylko identyfikatorów logowania programu SQL Server. Jeśli ta opcja jest dołączona, program SQL Server monituje o zaktualizowane hasło przy pierwszym użyciu zmienionego identyfikatora logowania.

NAME = login_name

Nowa nazwa logowania, która jest zmieniana. Jeśli identyfikator logowania jest identyfikatorem logowania systemu Windows, identyfikator SID podmiotu zabezpieczeń systemu Windows odpowiadającego nowej nazwie musi być zgodny z identyfikatorem SID skojarzonym z identyfikatorem logowania w programie SQL Server. Nowa nazwa logowania programu SQL Server nie może zawierać znaku ukośnika odwrotnego (\).

CHECK_EXPIRATION = { ON | WYŁ. }

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, czy zasady wygasania haseł powinny być wymuszane podczas tego logowania. Wartość domyślna to OFF.

CHECK_POLICY = { ON | WYŁ. }

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, że zasady haseł systemu Windows komputera, na którym działa program SQL Server, powinny być wymuszane na tym logowaniu. Wartość domyślna to WŁĄCZONE.

CREDENTIAL = credential_name

Nazwa poświadczenia, które mają zostać zamapowane na identyfikator logowania programu SQL Server. Poświadczenia muszą już istnieć na serwerze. Aby uzyskać więcej informacji, zobacz Credentials. Nie można zamapować poświadczenia na identyfikator logowania sa.

BRAK POŚWIADCZEŃ

Usuwa wszelkie istniejące mapowanie nazwy logowania na poświadczenia serwera. Aby uzyskać więcej informacji, zobacz Credentials.

ODBLOKOWAĆ

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, że nazwa logowania, która jest zablokowana, powinna zostać odblokowana.

DODAWANIE POŚWIADCZEŃ

Dodaje poświadczenie dostawcy zarządzania kluczami rozszerzalnymi (EKM) do identyfikatora logowania. Aby uzyskać więcej informacji, zobacz Extensible Key Management (EKM).

UPUŚĆ POŚWIADCZENIA

Usuwa poświadczenie dostawcy zarządzania kluczami rozszerzalnymi (EKM) z identyfikatora logowania. Aby uzyskać więcej informacji, zobacz Extensible Key Management (EKM).

Uwagi

Jeśli CHECK_POLICY jest ustawiona na WŁ., nie można użyć argumentu HASHED.

Po zmianie CHECK_POLICY na WŁ. następuje następujące zachowanie:

  • Historia haseł jest inicjowana z wartością bieżącego skrótu hasła.

Gdy CHECK_POLICY zostanie zmieniona na WYŁ., wystąpi następujące zachowanie:

  • CHECK_EXPIRATION jest również ustawiona na WARTOŚĆ WYŁĄCZONE.
  • Historia haseł jest czyszczone.
  • Wartość lockout_time jest resetowany.

Jeśli określono MUST_CHANGE, CHECK_EXPIRATION i CHECK_POLICY muszą być ustawione na WARTOŚĆ WŁĄCZONE. W przeciwnym razie instrukcja kończy się niepowodzeniem.

Jeśli CHECK_POLICY jest ustawiona na WYŁ., CHECK_EXPIRATION nie można ustawić wartości WŁĄCZONE. Instrukcja ALTER LOGIN, która zawiera tę kombinację opcji, kończy się niepowodzeniem.

Nie można użyć ALTER_LOGIN z argumentem DISABLE w celu odmowy dostępu do grupy systemu Windows. Jest to zgodnie z projektem. Na przykład ALTER_LOGIN [domena\grupa] funkcja DISABLE zwraca następujący komunikat o błędzie:

"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it doesn't exist or you don't have permission."

W usłudze SQL Database dane logowania wymagane do uwierzytelniania reguł zapory na poziomie serwera i połączenia są tymczasowo buforowane w każdej bazie danych. Ta pamięć podręczna jest okresowo odświeżona. Aby wymusić odświeżenie pamięci podręcznej uwierzytelniania i upewnić się, że baza danych ma najnowszą wersję tabeli logins, wykonaj DBCC FLUSHAUTHCACHE.

Uprawnienia

Wymaga uprawnienia ALTER ANY LOGIN.

Jeśli jest używana opcja CREDENTIAL, wymagane jest również uprawnienie ALTER ANY CREDENTIAL.

Jeśli identyfikator logowania, który jest zmieniany, jest elementem członkowskim sysadmin stałej roli serwera lub udzielenia uprawnień SERWERA KONTROLI, również wymaga uprawnień CONTROL SERVER podczas wprowadzania następujących zmian:

  • Resetowanie hasła bez podawania starego hasła.
  • Włączanie MUST_CHANGE, CHECK_POLICY lub CHECK_EXPIRATION.
  • Zmiana nazwy logowania.
  • Włączanie lub wyłączanie logowania.
  • Mapowanie nazwy logowania na inne poświadczenia.

Podmiot zabezpieczeń może zmienić hasło, język domyślny i domyślną bazę danych na potrzeby własnego logowania.

Tylko podmiot zabezpieczeń SQL z uprawnieniami sysadmin może wykonać polecenie ALTER LOGIN względem nazwy logowania firmy Microsoft Entra.

Przykłady

Te przykłady obejmują również przykłady użycia innych produktów SQL. Zobacz, które poprzednie argumenty są obsługiwane.

A. Włączanie wyłączonego logowania

Poniższy przykład umożliwia logowanie Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Zmienianie hasła logowania

Poniższy przykład zmienia hasło logowania Mary5 na silne hasło.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Zmienianie nazwy logowania

Poniższy przykład zmienia nazwę Mary5 logowania na John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapuj identyfikator logowania na poświadczenia

Poniższy przykład mapuje John2 logowania na Custodian04poświadczeń .

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapuj identyfikator logowania na poświadczenia rozszerzonego zarządzania kluczami

Poniższy przykład mapuje Mary5 logowania na EKMProvider1poświadczeń EKM.

Dotyczy: SQL Server 2008 (10.0.x) i nowsze oraz Azure SQL Managed Instance.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Odblokowywanie logowania

Aby odblokować identyfikator logowania programu SQL Server, wykonaj następującą instrukcję, zastępując **** odpowiednim hasłem konta.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO

Aby odblokować logowanie bez zmiany hasła, wyłącz zasady sprawdzania, a następnie ponownie.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Zmienianie hasła logowania przy użyciu protokołu HASHED

Poniższy przykład zmienia hasło logowania TestUser na wartość już skróconą.

Dotyczy: SQL Server 2008 (10.0.x) i nowsze oraz Azure SQL Managed Instance.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

H. Wyłączanie logowania użytkownika entra firmy Microsoft

Poniższy przykład wyłącza logowanie użytkownika microsoft Entra, joe@contoso.com.

ALTER LOGIN [joe@contoso.com] DISABLE;

usługi SQL Database

usługi SQL Managed Instance

* Azure Synapse
Analiza *

 

Azure Synapse Analytics

Składnia dla usługi Azure Synapse

ALTER LOGIN login_name
  {
      <status_option>
    | WITH <set_option> [ , .. .n ]
  }
[;]

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password'
    [
      OLD_PASSWORD = 'oldpassword'
    ]
    | NAME = login_name

Argumenty

login_name

Określa nazwę identyfikatora logowania programu SQL Server, który jest zmieniany. Identyfikatory logowania do domeny muszą być ujęte w nawiasy w formacie [domena\użytkownik].

WŁĄCZ | WYŁĄCZAĆ

Włącza lub wyłącza to logowanie. Wyłączenie logowania nie ma wpływu na zachowanie identyfikatorów logowania, które są już połączone. (Użyj instrukcji KILL, aby zakończyć istniejące połączenie). Wyłączone logowania zachowują swoje uprawnienia i nadal mogą być personifikowane.

PASSWORD = 'password'

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa hasło do zmienianego identyfikatora logowania. W hasłach jest rozróżniana wielkość liter.

Stale aktywne połączenia z usługą SQL Database wymagają ponownego uwierzytelniania (wykonywanego przez aparat bazy danych) co najmniej co 10 godzin. Aparat bazy danych próbuje ponownie uwierzytelnić przy użyciu pierwotnie przesłanego hasła i nie jest wymagane żadne dane wejściowe użytkownika. Ze względu na wydajność, gdy hasło jest resetowane w usłudze SQL Database, połączenie nie jest ponownie uwierzytelniane, nawet jeśli połączenie jest resetowane z powodu buforowania połączeń. Różni się to od zachowania lokalnego programu SQL Server. Jeśli hasło zostało zmienione od czasu, gdy połączenie zostało początkowo autoryzowane, połączenie musi zostać przerwane i nowe połączenie nawiązane przy użyciu nowego hasła. Użytkownik z uprawnieniem KILL DATABASE CONNECTION może jawnie przerwać połączenie z usługą SQL Database za pomocą polecenia KILL. Aby uzyskać więcej informacji, zobacz KILL.

Ważny

Gdy logowanie (lub użytkownik zawartej bazy danych) łączy się i jest uwierzytelniane, połączenie buforuje informacje o tożsamości logowania. W przypadku logowania do uwierzytelniania systemu Windows zawiera to informacje o członkostwie w grupach systemu Windows. Tożsamość logowania pozostaje uwierzytelniona, o ile połączenie jest utrzymywane. Aby wymusić zmiany tożsamości, takie jak resetowanie hasła lub zmiana członkostwa w grupie systemu Windows, logowanie musi wylogować się z urzędu uwierzytelniania (Windows lub SQL Server) i zalogować się ponownie. Członek sysadmin stałej roli serwera lub dowolny identyfikator logowania przy użyciu ALTER ANY CONNECTION uprawnienia może użyć KILL polecenie, aby zakończyć połączenie i wymusić ponowne nawiązanie połączenia. Program SQL Server Management Studio może ponownie używać informacji o połączeniu podczas otwierania wielu połączeń z oknami Eksplorator obiektów i Edytor zapytań. Zamknij wszystkie połączenia, aby wymusić ponowne nawiązanie połączenia.

OLD_PASSWORD = 'old_password'

Dotyczy tylko identyfikatorów logowania programu SQL Server. Bieżące hasło logowania, do którego zostanie przypisane nowe hasło. W hasłach jest rozróżniana wielkość liter.

NAME = login_name

Nowa nazwa logowania, która jest zmieniana. Jeśli jest to identyfikator logowania systemu Windows, identyfikator SID podmiotu zabezpieczeń systemu Windows odpowiadającego nowej nazwie musi być zgodny z identyfikatorem SID skojarzonym z identyfikatorem logowania w programie SQL Server. Nowa nazwa logowania programu SQL Server nie może zawierać znaku ukośnika odwrotnego (\).

Uwagi

W usłudze SQL Database dane logowania wymagane do uwierzytelniania reguł zapory na poziomie serwera i połączenia są tymczasowo buforowane w każdej bazie danych. Ta pamięć podręczna jest okresowo odświeżona. Aby wymusić odświeżenie pamięci podręcznej uwierzytelniania i upewnić się, że baza danych ma najnowszą wersję tabeli logins, wykonaj DBCC FLUSHAUTHCACHE.

Uprawnienia

Wymaga uprawnienia ALTER ANY LOGIN.

Jeśli identyfikator logowania, który jest zmieniany, jest elementem członkowskim sysadmin stałej roli serwera lub udzielenia uprawnień SERWERA KONTROLI, również wymaga uprawnień CONTROL SERVER podczas wprowadzania następujących zmian:

  • Resetowanie hasła bez podawania starego hasła.
  • Zmiana nazwy logowania.
  • Włączanie lub wyłączanie logowania.
  • Mapowanie nazwy logowania na inne poświadczenia.

Podmiot zabezpieczeń może zmienić hasło dla własnego identyfikatora logowania.

Przykłady

Te przykłady obejmują również przykłady użycia innych produktów SQL. Zobacz, które poprzednie argumenty są obsługiwane.

A. Włączanie wyłączonego logowania

Poniższy przykład umożliwia logowanie Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Zmienianie hasła logowania

Poniższy przykład zmienia hasło logowania Mary5 na silne hasło.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Zmienianie nazwy logowania

Poniższy przykład zmienia nazwę Mary5 logowania na John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapuj identyfikator logowania na poświadczenia

Poniższy przykład mapuje John2 logowania na Custodian04poświadczeń .

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapuj identyfikator logowania na poświadczenia rozszerzonego zarządzania kluczami

Poniższy przykład mapuje Mary5 logowania na EKMProvider1poświadczeń EKM.

Dotyczy: SQL Server 2008 (10.0.x) i nowszych.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Odblokowywanie logowania

Aby odblokować identyfikator logowania programu SQL Server, wykonaj następującą instrukcję, zastępując **** odpowiednim hasłem konta.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO

G. Zmienianie hasła logowania przy użyciu protokołu HASHED

Poniższy przykład zmienia hasło logowania TestUser na wartość już skróconą.

Dotyczy: SQL Server 2008 (10.0.x) i nowszych.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

usługi SQL Database

usługi SQL Managed Instance

* Analiza
System platformy (PDW) *

 

System platformy analizy

Składnia systemu platformy analizy

ALTER LOGIN login_name
    {
    <status_option>
    | WITH <set_option> [ , ... ]
    }

<status_option> ::= ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password'
    [
      OLD_PASSWORD = 'oldpassword'
      | <password_option> [ <password_option> ]
    ]
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }

<password_option> ::=
    MUST_CHANGE | UNLOCK

Argumenty

login_name

Określa nazwę identyfikatora logowania programu SQL Server, który jest zmieniany. Identyfikatory logowania do domeny muszą być ujęte w nawiasy w formacie [domena\użytkownik].

WŁĄCZ | WYŁĄCZAĆ

Włącza lub wyłącza to logowanie. Wyłączenie logowania nie ma wpływu na zachowanie identyfikatorów logowania, które są już połączone. (Użyj instrukcji KILL, aby zakończyć istniejące połączenie). Wyłączone logowania zachowują swoje uprawnienia i nadal mogą być personifikowane.

PASSWORD = 'password'

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa hasło do zmienianego identyfikatora logowania. W hasłach jest rozróżniana wielkość liter.

Ważny

Gdy logowanie (lub użytkownik zawartej bazy danych) łączy się i jest uwierzytelniane, połączenie buforuje informacje o tożsamości logowania. W przypadku logowania do uwierzytelniania systemu Windows zawiera to informacje o członkostwie w grupach systemu Windows. Tożsamość logowania pozostaje uwierzytelniona, o ile połączenie jest utrzymywane. Aby wymusić zmiany tożsamości, takie jak resetowanie hasła lub zmiana członkostwa w grupie systemu Windows, logowanie musi wylogować się z urzędu uwierzytelniania (Windows lub SQL Server) i zalogować się ponownie. Członek sysadmin stałej roli serwera lub dowolny identyfikator logowania przy użyciu ALTER ANY CONNECTION uprawnienia może użyć KILL polecenie, aby zakończyć połączenie i wymusić ponowne nawiązanie połączenia. Program SQL Server Management Studio może ponownie używać informacji o połączeniu podczas otwierania wielu połączeń z oknami Eksplorator obiektów i Edytor zapytań. Zamknij wszystkie połączenia, aby wymusić ponowne nawiązanie połączenia.

OLD_PASSWORD = 'old_password'

Dotyczy tylko identyfikatorów logowania programu SQL Server. Bieżące hasło logowania, do którego zostanie przypisane nowe hasło. W hasłach jest rozróżniana wielkość liter.

MUST_CHANGE

Dotyczy tylko identyfikatorów logowania programu SQL Server. Jeśli ta opcja jest dołączona, program SQL Server monituje o zaktualizowane hasło przy pierwszym użyciu zmienionego identyfikatora logowania.

NAME = login_name

Nowa nazwa logowania, która jest zmieniana. Jeśli identyfikator logowania jest identyfikatorem logowania systemu Windows, identyfikator SID podmiotu zabezpieczeń systemu Windows odpowiadającego nowej nazwie musi być zgodny z identyfikatorem SID skojarzonym z identyfikatorem logowania w programie SQL Server. Nowa nazwa logowania programu SQL Server nie może zawierać znaku ukośnika odwrotnego (\).

CHECK_EXPIRATION = { ON | WYŁ. }

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, czy zasady wygasania haseł powinny być wymuszane podczas tego logowania. Wartość domyślna to OFF.

CHECK_POLICY = { ON | WYŁ. }

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, że zasady haseł systemu Windows komputera, na którym działa program SQL Server, powinny być wymuszane na tym logowaniu. Wartość domyślna to WŁĄCZONE.

ODBLOKOWAĆ

Dotyczy tylko identyfikatorów logowania programu SQL Server. Określa, że nazwa logowania, która jest zablokowana, powinna zostać odblokowana.

Uwagi

Jeśli CHECK_POLICY jest ustawiona na WŁ., nie można użyć argumentu HASHED.

Po zmianie CHECK_POLICY na WŁ. następuje następujące zachowanie:

  • Historia haseł jest inicjowana z wartością bieżącego skrótu hasła.

Gdy CHECK_POLICY zostanie zmieniona na WYŁ., wystąpi następujące zachowanie:

  • CHECK_EXPIRATION jest również ustawiona na WARTOŚĆ WYŁĄCZONE.
  • Historia haseł jest czyszczone.
  • Wartość lockout_time jest resetowany.

Jeśli określono MUST_CHANGE, CHECK_EXPIRATION i CHECK_POLICY muszą być ustawione na WARTOŚĆ WŁĄCZONE. W przeciwnym razie instrukcja kończy się niepowodzeniem.

Jeśli CHECK_POLICY jest ustawiona na WYŁ., CHECK_EXPIRATION nie można ustawić wartości WŁĄCZONE. Instrukcja ALTER LOGIN, która zawiera tę kombinację opcji, kończy się niepowodzeniem.

Nie można użyć ALTER_LOGIN z argumentem DISABLE w celu odmowy dostępu do grupy systemu Windows. Jest to zgodnie z projektem. Na przykład ALTER_LOGIN [domena\grupa] funkcja DISABLE zwraca następujący komunikat o błędzie:

"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it doesn't exist or you don't have permission."

W usłudze SQL Database dane logowania wymagane do uwierzytelniania reguł zapory na poziomie serwera i połączenia są tymczasowo buforowane w każdej bazie danych. Ta pamięć podręczna jest okresowo odświeżona. Aby wymusić odświeżenie pamięci podręcznej uwierzytelniania i upewnić się, że baza danych ma najnowszą wersję tabeli logins, wykonaj DBCC FLUSHAUTHCACHE.

Uprawnienia

Wymaga uprawnienia ALTER ANY LOGIN.

Jeśli jest używana opcja CREDENTIAL, wymagane jest również uprawnienie ALTER ANY CREDENTIAL.

Jeśli identyfikator logowania, który jest zmieniany, jest elementem członkowskim sysadmin stałej roli serwera lub udzielenia uprawnień SERWERA KONTROLI, również wymaga uprawnień CONTROL SERVER podczas wprowadzania następujących zmian:

  • Resetowanie hasła bez podawania starego hasła.
  • Włączanie MUST_CHANGE, CHECK_POLICY lub CHECK_EXPIRATION.
  • Zmiana nazwy logowania.
  • Włączanie lub wyłączanie logowania.
  • Mapowanie nazwy logowania na inne poświadczenia.

Podmiot zabezpieczeń może zmienić hasło, język domyślny i domyślną bazę danych na potrzeby własnego logowania.

Przykłady

Te przykłady obejmują również przykłady użycia innych produktów SQL. Zobacz, które poprzednie argumenty są obsługiwane.

A. Włączanie wyłączonego logowania

Poniższy przykład umożliwia logowanie Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Zmienianie hasła logowania

Poniższy przykład zmienia hasło logowania Mary5 na silne hasło.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Zmienianie nazwy logowania

Poniższy przykład zmienia nazwę Mary5 logowania na John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapuj identyfikator logowania na poświadczenia

Poniższy przykład mapuje John2 logowania na Custodian04poświadczeń .

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapuj identyfikator logowania na poświadczenia rozszerzonego zarządzania kluczami

Poniższy przykład mapuje Mary5 logowania na EKMProvider1poświadczeń EKM.

Dotyczy: SQL Server 2008 (10.0.x) i nowszych.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Odblokowywanie logowania

Aby odblokować identyfikator logowania programu SQL Server, wykonaj następującą instrukcję, zastępując **** odpowiednim hasłem konta.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO

Aby odblokować logowanie bez zmiany hasła, wyłącz zasady sprawdzania, a następnie ponownie.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Zmienianie hasła logowania przy użyciu protokołu HASHED

Poniższy przykład zmienia hasło logowania TestUser na wartość już skróconą.

Dotyczy: SQL Server 2008 (10.0.x) i nowszych.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO