Udostępnij za pomocą


ALTER USER (Transact-SQL)

Zmienia nazwę użytkownika bazy danych lub zmienia jego domyślny schemat.

Transact-SQL konwencje składni

Note

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 Managed Instance

 

SQL Server

Syntax

-- Syntax for SQL Server

ALTER USER user_name
 WITH <set_item> [ ,...n ]
[;]

<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

Arguments

user_name

Określa nazwę, za pomocą której użytkownik jest identyfikowany w tej bazie danych.

LOGIN = login_name

Ponownie mapuje użytkownika na inne logowanie, zmieniając identyfikator zabezpieczeń użytkownika (SID), aby był zgodny z identyfikatorem SID logowania.

NAME = new_user_name

Określa nową nazwę dla tego użytkownika. new_user_name nie może jeszcze istnieć w bieżącej bazie danych.

DEFAULT_SCHEMA = { schema_name | NULL }

Określa pierwszy schemat, który będzie wyszukiwany przez serwer podczas rozpoznawania nazw obiektów dla tego użytkownika. Ustawienie domyślnego schematu na NULL powoduje usunięcie domyślnego schematu z grupy systemu Windows. Opcji NULL nie można używać z użytkownikiem systemu Windows.

PASSWORD = 'password'

Dotyczy: SQL Server 2012 (11.x) i nowsze wersje usługi Azure SQL Database.

Określa hasło użytkownika, który jest zmieniany. W hasłach jest rozróżniana wielkość liter.

Note

Ta opcja jest dostępna tylko dla zawartych użytkowników. Aby uzyskać więcej informacji, zobacz Zawarte bazy danych i sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD ='oldpassword'

Dotyczy: SQL Server 2012 (11.x) i nowsze wersje usługi Azure SQL Database.

Bieżące hasło użytkownika, które zostanie zastąpione hasłem "". W hasłach jest rozróżniana wielkość liter. OLD_PASSWORD jest wymagany do zmiany hasła, chyba że masz ALTER ANY USER uprawnienia. Wymaganie OLD_PASSWORD uniemożliwia użytkownikom personifikacji uprawnienia do zmiany hasła.

Note

Ta opcja jest dostępna tylko dla zawartych użytkowników.

DEFAULT_LANGUAGE ={ NONE | <lcid> | <nazwa języka> | alias języka <> }

Dotyczy: SQL Server 2012 (11.x) i nowsze wersje.

Określa domyślny język, który ma być przypisany do użytkownika. Jeśli ta opcja jest ustawiona na NONE, domyślny język jest ustawiony na bieżący domyślny język bazy danych. Jeśli domyślny język bazy danych zostanie później zmieniony, domyślny język użytkownika pozostanie niezmieniony. DEFAULT_LANGUAGE może być identyfikatorem lokalnym (lcid), nazwą języka lub aliasem języka.

Note

Tę opcję można określić tylko w zawartej bazie danych i tylko dla zawartych użytkowników.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | WYŁĄCZONE ]

Dotyczy: SQL Server 2016 (13.x) i nowsze wersje usługi Azure SQL Database.

Pomija sprawdzanie metadanych kryptograficznych na serwerze w operacjach kopiowania zbiorczego. Dzięki temu użytkownik może zbiorczo kopiować zaszyfrowane dane między tabelami lub bazami danych bez odszyfrowywania danych. Wartość domyślna to WYŁĄCZONE.

Warning

Niewłaściwe użycie tej opcji może prowadzić do uszkodzenia danych. Aby uzyskać więcej informacji, zobacz zbiorcze ładowanie zaszyfrowanych danych do kolumn przy użyciu funkcji Always Encrypted.

Remarks

Domyślny schemat będzie pierwszym schematem, który będzie przeszukiwany przez serwer podczas rozpoznawania nazw obiektów dla tego użytkownika bazy danych. Jeśli nie określono inaczej, domyślny schemat będzie właścicielem obiektów utworzonych przez tego użytkownika bazy danych.

Jeśli użytkownik ma domyślny schemat, zostanie użyty ten domyślny schemat. Jeśli użytkownik nie ma schematu domyślnego, ale użytkownik jest członkiem grupy, która ma schemat domyślny, zostanie użyty domyślny schemat grupy. Jeśli użytkownik nie ma schematu domyślnego i jest członkiem więcej niż jednej grupy, domyślnym schematem dla użytkownika będzie grupa systemu Windows z najniższym principal_id i jawnie ustawiony schemat domyślny. Jeśli dla użytkownika nie można określić schematu domyślnego, zostanie użyty schemat dbo.

DEFAULT_SCHEMA można ustawić na schemat, który obecnie nie występuje w bazie danych. W związku z tym można przypisać DEFAULT_SCHEMA do użytkownika przed utworzeniem tego schematu.

DEFAULT_SCHEMA nie można określić dla użytkownika, który jest mapowany na certyfikat lub klucz asymetryczny.

Important

Wartość DEFAULT_SCHEMA jest ignorowana, jeśli użytkownik jest członkiem sysadmin stałej roli serwera. Wszyscy członkowie sysadmin stałej roli serwera mają domyślny schemat dbo.

Nazwę użytkownika mapowanego na identyfikator logowania lub grupę systemu Windows można zmienić tylko wtedy, gdy identyfikator SID nowej nazwy użytkownika jest zgodny z identyfikatorem SID zarejestrowanym w bazie danych. Ta kontrola pomaga zapobiec fałszowaniu logowań systemu Windows w bazie danych.

Klauzula WITH LOGIN umożliwia ponowne mapowanie użytkownika na inne logowanie. Użytkownicy bez logowania, użytkownicy mapowane na certyfikat lub użytkownicy mapowane na klucz asymetryczny nie mogą być mapowane ponownie za pomocą tej klauzuli. Można ponownie mapować tylko użytkowników SQL i użytkowników systemu Windows (lub grupy). Klauzula WITH LOGIN nie może służyć do zmiany typu użytkownika, takiego jak zmiana konta systemu Windows na identyfikator logowania programu SQL Server.

Niezgodność identyfikatora SID może wystąpić po przywróceniu bazy danych z innego serwera i zamapowaniu użytkownika bazy danych na identyfikator logowania programu SQL Server. Aby rozwiązać tę sytuację, możesz użyć klauzuli WITH LOGIN, zastępując identyfikator SID użytkownika w bazie danych identyfikatorem SID logowania z serwera.

Nazwa użytkownika zostanie automatycznie zmieniona na nazwę logowania, jeśli spełnione są następujące warunki.

  • Użytkownik jest użytkownikiem systemu Windows.

  • Nazwa jest nazwą systemu Windows (zawiera ukośnik odwrotny).

  • Nie określono nowej nazwy.

  • Bieżąca nazwa różni się od nazwy logowania.

W przeciwnym razie nazwa użytkownika nie zostanie zmieniona, chyba że obiekt wywołujący dodatkowo wywołuje klauzulę NAME.

Nazwa użytkownika zamapowanego na identyfikator logowania programu SQL Server, certyfikat lub klucz asymetryczny nie może zawierać znaku ukośnika odwrotnego (\).

Note

Schematy nie są równoważne użytkownikom bazy danych. Użyj widoków wykazu systemu , aby zidentyfikować wszelkie różnice między użytkownikami bazy danych i schematami.

Począwszy od programu SQL Server 2012 (11.x), program SQL Server i usługa Azure SQL DB używał skrótu SHA-512 w połączeniu z 32-bitową i unikatową solą. Ta metoda uczyniła ją statystycznie niewykonalną dla osób atakujących w celu wyłudzenia haseł.

Program SQL Server 2025 (17.x) w wersji zapoznawczej wprowadza algorytm iteracji skrótu, RFC2898, znany również jako funkcja wyprowadzania kluczy opartych na hasłach (PBKDF). Ten algorytm nadal używa algorytmu SHA-512, ale skróty hasła wielokrotnie (100 000 iteracji), znacznie spowalniając ataki siłowe. Ta zmiana zwiększa ochronę haseł w odpowiedzi na zmieniające się zagrożenia bezpieczeństwa i pomaga klientom przestrzegać wytycznych NIST SP 800-63b. To ulepszenie zabezpieczeń korzysta z silniejszego algorytmu tworzenia skrótów, co może nieco wydłużyć czas logowania do logowania uwierzytelniania SQL. Wpływ jest na ogół niższy w środowiskach z buforowaniem połączeń, ale może być bardziej zauważalny w scenariuszach bez buforowania lub gdy opóźnienie logowania jest ściśle monitorowane.

Zabezpieczenia

Note

Użytkownik, który ma ALTER ANY USER uprawnienia, może zmienić domyślny schemat dowolnego użytkownika. Użytkownik, który ma zmieniony schemat, może nieświadomie wybrać dane z niewłaściwej tabeli lub wykonać kod z nieprawidłowego schematu.

Permissions

Aby zmienić nazwę użytkownika, wymagane jest uprawnienie ALTER ANY USER.

Aby zmienić docelowe logowanie użytkownika, wymagane jest uprawnienie CONTROL w bazie danych.

Aby zmienić nazwę użytkownika z uprawnieniem CONTROL w bazie danych, wymagane jest uprawnienie CONTROL w bazie danych.

Aby zmienić domyślny schemat lub język, alter uprawnienia użytkownika. Użytkownicy mogą zmieniać własny domyślny schemat lub język.

Examples

Wszystkie przykłady są wykonywane w bazie danych użytkownika.

A. Zmienianie nazwy użytkownika bazy danych

Poniższy przykład zmienia nazwę użytkownika bazy danych Mary5 na Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Zmienianie domyślnego schematu użytkownika

Poniższy przykład zmienia domyślny schemat Mary51 użytkownika na Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Zmień kilka opcji jednocześnie

Dotyczy: SQL Server 2012 (11.x) i nowsze wersje.

Poniższy przykład zmienia kilka opcji dla zawartego użytkownika bazy danych w jednej instrukcji. Zastąp <new strong password here> wartości i <old strong password here> własnymi wartościami.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>'
, DEFAULT_LANGUAGE= French ;
GO

D. Poprawianie niezgodnego identyfikatora SID

Poniższy przykład poprawia identyfikator SID użytkownika w bazie danych w celu dopasowania identyfikatora SID na serwerze do uwierzytelnionego logowania programu SQL Server.

ALTER USER Mai
WITH LOGIN = Mai;
GO

* Azure SQL Database i Microsoft Fabric *

usługi SQL Managed Instance

 

Usługi Azure SQL Database i Microsoft Fabric

Syntax

Składnia dla usługi Azure SQL Database

-- Syntax for Azure SQL Database

ALTER USER user_name
 WITH <set_item> [ ,...n ]

<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = schema_name
| LOGIN = login_name
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
[;]

-- Azure SQL Database Update Syntax
ALTER USER user_name
 WITH <set_item> [ ,...n ]
[;]

<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

-- SQL Database syntax when connected to a federation member
ALTER USER user_name
 WITH <set_item> [ ,... n ]
[;]

<set_item> ::=
 NAME = new_user_name

Składnia bazy danych SQL w usłudze Microsoft Fabric (wersja zapoznawcza)

ALTER USER   
    {  
    Microsoft_Entra_principal FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    }  
 [ ; ]  

-- Users that cannot authenticate   
ALTER USER user_name   
    {  
         { FOR | FROM } CERTIFICATE cert_name   
       | { FOR | FROM } ASYMMETRIC KEY asym_key_name   
    }  
 [ ; ]  

<options_list> ::=  
    DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }   

-- SQL Database syntax when connected to a federation member  
ALTER USER user_name
[;]

Składnia dla usługi Microsoft Fabric Warehouse

-- Syntax for Fabric Data Warehouse

ALTER USER user_name
 WITH <set_item> [ ,...n ]

<set_item> ::=
 | DEFAULT_SCHEMA = schema_name
[;]

Arguments

user_name

Określa nazwę, za pomocą której użytkownik jest identyfikowany w tej bazie danych.

LOGIN = login_name

Ponownie mapuje użytkownika na inne logowanie, zmieniając identyfikator zabezpieczeń użytkownika (SID), aby był zgodny z identyfikatorem SID logowania.

Jeśli instrukcja ALTER USER jest jedyną instrukcją w partii SQL, usługa Azure SQL Database obsługuje klauzulę WITH LOGIN. Jeśli instrukcja ALTER USER nie jest jedyną instrukcją w partii SQL lub jest wykonywana w dynamicznym języku SQL, klauzula WITH LOGIN nie jest obsługiwana.

NAME = new_user_name

Określa nową nazwę dla tego użytkownika. new_user_name nie może jeszcze istnieć w bieżącej bazie danych.

DEFAULT_SCHEMA = { schema_name | NULL }

Określa pierwszy schemat, który będzie wyszukiwany przez serwer podczas rozpoznawania nazw obiektów dla tego użytkownika.

Ustawienie domyślnego schematu na NULL powoduje usunięcie domyślnego schematu z użytkownika utworzonego dla grupy Identyfikator entra firmy Microsoft. Opcji NULL nie można używać z żadnym innym rodzajem użytkownika.

PASSWORD = 'password'

Dotyczy: Azure SQL Database.

Określa hasło użytkownika, który jest zmieniany. W hasłach jest rozróżniana wielkość liter.

Note

Ta opcja jest dostępna tylko dla zawartych użytkowników. Aby uzyskać więcej informacji, zobacz Zawarte bazy danych i sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD ='oldpassword'

Dotyczy: Azure SQL Database.

Bieżące hasło użytkownika, które zostanie zastąpione hasłem "". W hasłach jest rozróżniana wielkość liter. OLD_PASSWORD jest wymagany do zmiany hasła, chyba że masz ALTER ANY USER uprawnienia. Wymaganie OLD_PASSWORD uniemożliwia użytkownikom personifikacji uprawnienia do zmiany hasła.

Note

Ta opcja jest dostępna tylko dla zawartych użytkowników.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | WYŁĄCZONE ]

Dotyczy: SQL Server 2016 (13.x) i nowsze wersje usługi Azure SQL Database.

Pomija sprawdzanie metadanych kryptograficznych na serwerze w operacjach kopiowania zbiorczego. Dzięki temu użytkownik może zbiorczo kopiować zaszyfrowane dane między tabelami lub bazami danych bez odszyfrowywania danych. Wartość domyślna to WYŁĄCZONE.

Warning

Niewłaściwe użycie tej opcji może prowadzić do uszkodzenia danych. Aby uzyskać więcej informacji, zobacz zbiorcze ładowanie zaszyfrowanych danych do kolumn przy użyciu funkcji Always Encrypted.

Remarks

Domyślny schemat będzie pierwszym schematem, który będzie przeszukiwany przez serwer podczas rozpoznawania nazw obiektów dla tego użytkownika bazy danych. Jeśli nie określono inaczej, domyślny schemat będzie właścicielem obiektów utworzonych przez tego użytkownika bazy danych.

Jeśli użytkownik ma domyślny schemat, używany jest ten schemat domyślny. Jeśli użytkownik nie ma schematu domyślnego, ale użytkownik jest członkiem grupy, która ma schemat domyślny, zostanie użyty domyślny schemat grupy. Jeśli użytkownik nie ma schematu domyślnego i jest członkiem więcej niż jednej grupy, domyślnym schematem dla użytkownika będzie grupa o najniższym principal_id i jawnie ustawiony schemat domyślny. Jeśli dla użytkownika nie można określić schematu domyślnego, zostanie użyty schemat dbo.

DEFAULT_SCHEMA można ustawić na schemat, który obecnie nie występuje w bazie danych. W związku z tym można przypisać DEFAULT_SCHEMA do użytkownika przed utworzeniem tego schematu.

DEFAULT_SCHEMA nie można określić dla użytkownika, który jest mapowany na certyfikat lub klucz asymetryczny.

Important

Wartość DEFAULT_SCHEMA jest ignorowana, jeśli użytkownik jest członkiem sysadmin stałej roli serwera. Wszyscy członkowie sysadmin stałej roli serwera mają domyślny schemat dbo.

Klauzula WITH LOGIN umożliwia ponowne mapowanie użytkownika na inne logowanie. Użytkownicy bez logowania, użytkownicy mapowane na certyfikat lub użytkownicy mapowane na klucz asymetryczny nie mogą być mapowane ponownie za pomocą tej klauzuli. Można ponownie mapować tylko użytkowników SQL. Nie można użyć klauzuli WITH LOGIN w celu zmiany typu użytkownika.

Nazwa użytkownika zostanie automatycznie zmieniona na nazwę logowania, jeśli spełnione są następujące warunki.

  • Nie określono nowej nazwy.

  • Bieżąca nazwa różni się od nazwy logowania.

W przeciwnym razie nazwa użytkownika nie zostanie zmieniona, chyba że obiekt wywołujący dodatkowo wywołuje klauzulę NAME.

Nazwa użytkownika zamapowanego na identyfikator logowania programu SQL Server, certyfikat lub klucz asymetryczny nie może zawierać znaku ukośnika odwrotnego (\).

Note

Schematy nie są równoważne użytkownikom bazy danych. Użyj widoków wykazu systemu , aby zidentyfikować wszelkie różnice między użytkownikami bazy danych i schematami.

Sieć szkieletowa SQL Database

Aby uzyskać więcej informacji, zobacz:

Magazyn tkanin

W usłudze Microsoft Fabric Warehouse funkcja ALTER USER jest ograniczona do ustawiania tylko domyślnego schematu. Wszelkie inne argumenty często skojarzone z alter USER w języku SQL lub innych produktach nie są obsługiwane i zwraca błąd.

W usłudze Microsoft Fabric Warehouse w nazwie sortowania jest rozróżniana wielkość liter.

Domyślny schemat będzie pierwszym schematem, który będzie przeszukiwany przez serwer podczas rozpoznawania nazw obiektów dla tego użytkownika bazy danych. Jeśli nie określono inaczej, domyślny schemat będzie właścicielem obiektów utworzonych przez tego użytkownika bazy danych.

Jeśli użytkownik ma domyślny schemat, zostanie użyty ten schemat. Jeśli nie określono domyślnego schematu, zostanie zastosowany schemat dbo. Aparat bazy danych najpierw podejmie próbę rozpoznania obiektów w domyślnym schemacie użytkownika. Jeśli nie zostanie znaleziony pasujący obiekt, sprawdzi schemat dbo.

DEFAULT_SCHEMA można ustawić na schemat, który obecnie nie istnieje w bazie danych. W związku z tym można przypisać DEFAULT_SCHEMA do użytkownika przed utworzeniem tego schematu.

Aby uzyskać więcej informacji, zobacz:

Zabezpieczenia

Note

Użytkownik, który ma ALTER ANY USER uprawnienia, może zmienić domyślny schemat dowolnego użytkownika. Użytkownik, który ma zmieniony schemat, może nieświadomie wybrać dane z niewłaściwej tabeli lub wykonać kod z nieprawidłowego schematu.

Permissions

Aby zmienić nazwę użytkownika, wymagane jest uprawnienie ALTER ANY USER.

Aby zmienić docelowe logowanie użytkownika, wymagane jest uprawnienie CONTROL w bazie danych.

Aby zmienić nazwę użytkownika z uprawnieniem CONTROL w bazie danych, wymagane jest uprawnienie CONTROL w bazie danych.

Aby zmienić domyślny schemat lub język, alter uprawnienia użytkownika. Użytkownicy mogą zmieniać własny domyślny schemat lub język.

Uprawnienia roli magazynu sieci szkieletowej

Użytkownicy z minimalnym członkostwem w roli WSPÓŁAUTOR w obszarze roboczym mogą zmienić domyślny schemat dowolnego użytkownika w magazynie danych sieci szkieletowej.

Użytkownicy z członkostwem roli VIEWER w obszarze roboczym nie mogą zmienić własnego schematu domyślnego, chyba że użytkownik z podwyższonym poziomem dostępu przyznaje to uprawnienie.

Użytkownicy uwzględnieni w roli OSOBA PRZEGLĄDAJĄCA na poziomie obszaru roboczego wymagają uprawnienia ALTER ANY USER w celu zmiany domyślnego schematu innych użytkowników.

Examples

Wszystkie przykłady są wykonywane w bazie danych użytkownika.

A. Zmienianie nazwy użytkownika bazy danych

Poniższy przykład zmienia nazwę użytkownika bazy danych Mary5 na Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Zmienianie domyślnego schematu użytkownika

Poniższy przykład zmienia domyślny schemat Mary51 użytkownika na Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Zmień kilka opcji jednocześnie

Poniższy przykład zmienia kilka opcji dla zawartego użytkownika bazy danych w jednej instrukcji. Zastąp <new strong password here> wartości i <old strong password here> własnymi wartościami.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>';
GO

D. Zmienianie domyślnego schematu użytkownika

Poniższy przykład zmienia domyślny schemat Mary51 użytkownika na Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

* SQL Managed Instance *

 

Azure SQL Managed Instance

Syntax

Important

W przypadku usługi Azure SQL Managed Instance są obsługiwane tylko następujące opcje podczas stosowania do użytkowników z identyfikatorami logowania firmy Microsoft Entra: DEFAULT_SCHEMA = { schema_name | NULL } i DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }

Dodano nowe rozszerzenie składni ułatwiające ponowne mapowanie użytkowników w bazie danych migrowanej do usługi Azure SQL Managed Instance. Składnia ALTER USER ułatwia mapowanie użytkowników bazy danych w domenie federacyjnej i zsynchronizowanej z identyfikatorem Microsoft Entra ID na logowania firmy Microsoft Entra.

-- Syntax for SQL Managed Instance
ALTER USER user_name
 { WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]

<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

-- Users or groups that are migrated as federated and synchronized with Azure AD have the following syntax:

/** Applies to Windows users that were migrated and have the following user names:
- Windows user <domain\user>
- Windows group <domain\MyWindowsGroup>
- Windows alias <MyWindowsAlias>
**/

ALTER USER user_name
 { WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]

<set_item> ::=
 NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }

Arguments

user_name

Określa nazwę, za pomocą której użytkownik jest identyfikowany w tej bazie danych.

LOGIN = login_name

Ponownie mapuje użytkownika na inne logowanie, zmieniając identyfikator zabezpieczeń użytkownika (SID), aby był zgodny z identyfikatorem SID logowania.

Jeśli instrukcja ALTER USER jest jedyną instrukcją w partii SQL, usługa Azure SQL Database obsługuje klauzulę WITH LOGIN. Jeśli instrukcja ALTER USER nie jest jedyną instrukcją w partii SQL lub jest wykonywana w dynamicznym języku SQL, klauzula WITH LOGIN nie jest obsługiwana.

NAME = new_user_name

Określa nową nazwę dla tego użytkownika. new_user_name nie może jeszcze istnieć w bieżącej bazie danych.

DEFAULT_SCHEMA = { schema_name | NULL }

Określa pierwszy schemat, który będzie wyszukiwany przez serwer podczas rozpoznawania nazw obiektów dla tego użytkownika. Ustawienie domyślnego schematu na NULL powoduje usunięcie domyślnego schematu z grupy systemu Windows. Opcji NULL nie można używać z użytkownikiem systemu Windows.

PASSWORD = 'password'

Określa hasło użytkownika, który jest zmieniany. W hasłach jest rozróżniana wielkość liter.

Note

Ta opcja jest dostępna tylko dla zawartych użytkowników. Aby uzyskać więcej informacji, zobacz Zawarte bazy danych i sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD = "oldpassword"

Bieżące hasło użytkownika, które zostanie zastąpione hasłem "". W hasłach jest rozróżniana wielkość liter. OLD_PASSWORD jest wymagany do zmiany hasła, chyba że masz ALTER ANY USER uprawnienia. Wymaganie OLD_PASSWORD uniemożliwia użytkownikom personifikacji uprawnienia do zmiany hasła.

Note

Ta opcja jest dostępna tylko dla zawartych użytkowników.

DEFAULT_LANGUAGE ={ NONE | <lcid> | <nazwa języka> | alias języka <> }

Określa domyślny język, który ma być przypisany do użytkownika. Jeśli ta opcja jest ustawiona na NONE, domyślny język jest ustawiony na bieżący domyślny język bazy danych. Jeśli domyślny język bazy danych zostanie później zmieniony, domyślny język użytkownika pozostanie niezmieniony. DEFAULT_LANGUAGE może być identyfikatorem lokalnym (lcid), nazwą języka lub aliasem języka.

Note

Tę opcję można określić tylko w zawartej bazie danych i tylko dla zawartych użytkowników.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | WYŁĄCZONE ]

Pomija sprawdzanie metadanych kryptograficznych na serwerze w operacjach kopiowania zbiorczego. Dzięki temu użytkownik może zbiorczo kopiować zaszyfrowane dane między tabelami lub bazami danych bez odszyfrowywania danych. Wartość domyślna to WYŁĄCZONE.

Warning

Niewłaściwe użycie tej opcji może prowadzić do uszkodzenia danych. Aby uzyskać więcej informacji, zobacz zbiorcze ładowanie zaszyfrowanych danych do kolumn przy użyciu funkcji Always Encrypted.

Remarks

Domyślny schemat będzie pierwszym schematem, który będzie przeszukiwany przez serwer podczas rozpoznawania nazw obiektów dla tego użytkownika bazy danych. Jeśli nie określono inaczej, domyślny schemat będzie właścicielem obiektów utworzonych przez tego użytkownika bazy danych.

Jeśli użytkownik ma domyślny schemat, używany jest ten schemat domyślny. Jeśli użytkownik nie ma schematu domyślnego, ale użytkownik jest członkiem grupy, która ma schemat domyślny, zostanie użyty domyślny schemat grupy. Jeśli użytkownik nie ma schematu domyślnego i jest członkiem więcej niż jednej grupy, domyślnym schematem dla użytkownika będzie grupa systemu Windows z najniższym principal_id i jawnie ustawiony schemat domyślny. Jeśli dla użytkownika nie można określić schematu domyślnego, zostanie użyty schemat dbo.

DEFAULT_SCHEMA można ustawić na schemat, który obecnie nie występuje w bazie danych. W związku z tym można przypisać DEFAULT_SCHEMA do użytkownika przed utworzeniem tego schematu.

DEFAULT_SCHEMA nie można określić dla użytkownika, który jest mapowany na certyfikat lub klucz asymetryczny.

Important

Wartość DEFAULT_SCHEMA jest ignorowana, jeśli użytkownik jest członkiem sysadmin stałej roli serwera. Wszyscy członkowie sysadmin stałej roli serwera mają domyślny schemat dbo.

Nazwę użytkownika mapowanego na identyfikator logowania lub grupę systemu Windows można zmienić tylko wtedy, gdy identyfikator SID nowej nazwy użytkownika jest zgodny z identyfikatorem SID zarejestrowanym w bazie danych. Ta kontrola pomaga zapobiec fałszowaniu logowań systemu Windows w bazie danych.

Klauzula WITH LOGIN umożliwia ponowne mapowanie użytkownika na inne logowanie. Użytkownicy bez logowania, użytkownicy mapowane na certyfikat lub użytkownicy mapowane na klucz asymetryczny nie mogą być mapowane ponownie za pomocą tej klauzuli. Można ponownie mapować tylko użytkowników SQL i użytkowników systemu Windows (lub grupy). Klauzula WITH LOGIN nie może służyć do zmiany typu użytkownika, takiego jak zmiana konta systemu Windows na identyfikator logowania programu SQL Server. Jedynym wyjątkiem jest zmiana użytkownika systemu Windows na użytkownika Firmy Microsoft Entra.

Note

Następujące reguły nie mają zastosowania do użytkowników systemu Windows w usłudze Azure SQL Managed Instance, ponieważ nie obsługujemy tworzenia identyfikatorów logowania systemu Windows w usłudze Azure SQL Managed Instance. Opcja WITH LOGIN może być używana tylko wtedy, gdy istnieją identyfikatory logowania firmy Microsoft Entra.

Nazwa użytkownika zostanie automatycznie zmieniona na nazwę logowania, jeśli spełnione są następujące warunki.

  • Użytkownik jest użytkownikiem systemu Windows.

  • Nazwa jest nazwą systemu Windows (zawiera ukośnik odwrotny).

  • Nie określono nowej nazwy.

  • Bieżąca nazwa różni się od nazwy logowania.

W przeciwnym razie nazwa użytkownika nie zostanie zmieniona, chyba że obiekt wywołujący dodatkowo wywołuje klauzulę NAME.

Nazwa użytkownika zamapowanego na identyfikator logowania programu SQL Server, certyfikat lub klucz asymetryczny nie może zawierać znaku ukośnika odwrotnego (\).

Note

Schematy nie są równoważne użytkownikom bazy danych. Użyj widoków wykazu systemu , aby zidentyfikować wszelkie różnice między użytkownikami bazy danych i schematami.

Uwagi dotyczące użytkowników systemu Windows w środowisku lokalnym SQL migrowanych do usługi Azure SQL Managed Instance

Te uwagi dotyczą uwierzytelniania użytkowników systemu Windows, które zostały sfederowane i zsynchronizowane z identyfikatorem Entra firmy Microsoft.

  • Walidacja użytkowników lub grup systemu Windows mapowanych na identyfikator Entra firmy Microsoft jest domyślnie wykonywana za pośrednictwem interfejsu API programu Graph we wszystkich wersjach składni ALTER USER używanej do celów migracji.
  • Użytkownicy lokalni, którzy byli aliasami (używają innej nazwy od oryginalnego konta systemu Windows), zachowają nazwę aliasu.
  • W przypadku uwierzytelniania entra firmy Microsoft parametr LOGIN dotyczy tylko usługi Azure SQL Managed Instance i nie może być używany z usługą SQL Database.
  • Aby wyświetlić identyfikatory logowania dla podmiotów zabezpieczeń firmy Microsoft, użyj następującego polecenia: SELECT * FROM sys.server_principals;.
  • Sprawdź, czy wskazany typ logowania to E lub X.
  • Opcja PASSWORD nie może być używana dla użytkowników firmy Microsoft Entra.
  • We wszystkich przypadkach migracji role i uprawnienia użytkowników lub grup systemu Windows zostaną automatycznie przeniesione do nowych użytkowników lub grup firmy Microsoft Entra.
  • FROM EXTERNAL PROVIDER jest zmiana użytkowników i grup systemu Windows ze środowiska lokalnego SQL na użytkowników i grupy firmy Microsoft Entra. Domena systemu Windows musi być federacyjna z identyfikatorem Entra firmy Microsoft, a wszystkie elementy członkowskie domeny systemu Windows muszą istnieć w identyfikatorze Entra firmy Microsoft w przypadku korzystania z tego rozszerzenia. Składnia FROM EXTERNAL PROVIDER ma zastosowanie do usługi Azure SQL Managed Instance i powinna być używana w przypadku, gdy użytkownicy systemu Windows nie mają identyfikatorów logowania w oryginalnym wystąpieniu SQL i muszą być mapowane na autonomicznych użytkowników bazy danych Microsoft Entra.
  • W takim przypadku dozwolone user_name mogą być następujące:
  • Użytkownik systemu Windows (domain\user).
  • Grupa systemu Windows (MyWindowsGroup).
  • Alias systemu Windows (MyWindowsAlias).
  • Wynik polecenia ALTER zastępuje starą user_name odpowiednią nazwą znajdującą się w identyfikatorze Microsoft Entra ID na podstawie oryginalnego identyfikatora SID starego user_name. Zmieniona nazwa jest zastępowana i przechowywana w metadanych bazy danych:
  • (domain\user) zostanie zastąpiony programem Microsoft Entra user@domain.com.
  • (domain\MyWindowsGroup) zostanie zastąpiony grupą Microsoft Entra.
  • (MyWindowsAlias) pozostanie niezmieniona, ale identyfikator SID tego użytkownika zostanie zaewidencjonowany w identyfikatorze Entra firmy Microsoft.

Note

Jeśli nie można odnaleźć identyfikatora SID oryginalnego użytkownika przekonwertowanego na object_ID w dzierżawie Microsoft Entra ID, polecenie ALTER USER zakończy się niepowodzeniem.

  • Aby wyświetlić zmienionych użytkowników, użyj następującego polecenia: SELECT * FROM sys.database_principals;
  • Sprawdź wskazany typ użytkownika E lub X.
  • Gdy funkcja NAME jest używana do migrowania użytkowników systemu Windows do użytkowników firmy Microsoft Entra, obowiązują następujące ograniczenia:
    • Należy określić prawidłowy identyfikator LOGOWANIA.
    • Nazwa zostanie zaewidencjonowana w dzierżawie Microsoft Entra ID i może być tylko:
      • Nazwa logowania.
      • Alias — nazwa nie może istnieć w identyfikatorze Entra firmy Microsoft.
      • We wszystkich innych przypadkach składnia kończy się niepowodzeniem.

Zabezpieczenia

Note

Użytkownik, który ma ALTER ANY USER uprawnienia, może zmienić domyślny schemat dowolnego użytkownika. Użytkownik, który ma zmieniony schemat, może nieświadomie wybrać dane z niewłaściwej tabeli lub wykonać kod z nieprawidłowego schematu.

Permissions

Aby zmienić nazwę użytkownika, wymagane jest uprawnienie ALTER ANY USER.

Aby zmienić docelowe logowanie użytkownika, wymagane jest uprawnienie CONTROL w bazie danych.

Aby zmienić nazwę użytkownika z uprawnieniem CONTROL w bazie danych, wymagane jest uprawnienie CONTROL w bazie danych.

Aby zmienić domyślny schemat lub język, alter uprawnienia użytkownika. Użytkownicy mogą zmieniać własny domyślny schemat lub język.

Examples

Wszystkie przykłady są wykonywane w bazie danych użytkownika.

A. Zmienianie nazwy użytkownika bazy danych

Poniższy przykład zmienia nazwę użytkownika bazy danych Mary5 na Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Zmienianie domyślnego schematu użytkownika

Poniższy przykład zmienia domyślny schemat Mary51 użytkownika na Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Zmień kilka opcji jednocześnie

Poniższy przykład zmienia kilka opcji dla zawartego użytkownika bazy danych w jednej instrukcji. Zastąp <new strong password here> wartości i <old strong password here> własnymi wartościami.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>'
, DEFAULT_LANGUAGE= French ;
GO

D. Mapowanie użytkownika w bazie danych na logowanie firmy Microsoft Entra po migracji

Poniższy przykład ponownie mapuje użytkownika, westus/joe do użytkownika Microsoft Entra, joe@westus.com. Ten przykład dotyczy identyfikatorów logowania, które już istnieją w wystąpieniu zarządzanym. Należy to wykonać po zakończeniu migracji bazy danych do usługi Azure SQL Managed Instance i chcieć uwierzytelnić się przy użyciu logowania firmy Microsoft Entra.

ALTER USER [westus/joe] WITH LOGIN = [joe@westus.com]

E. Mapowanie starego użytkownika systemu Windows w bazie danych bez logowania w usłudze Azure SQL Managed Instance do użytkownika usługi Microsoft Entra

Poniższy przykład ponownie mapuje użytkownika, westus/joe bez logowania, do użytkownika Microsoft Entra, joe@westus.com. Użytkownik federacyjny musi istnieć w identyfikatorze Entra firmy Microsoft.

ALTER USER [westus/joe] FROM EXTERNAL PROVIDER

F. Mapowanie aliasu użytkownika na istniejący identyfikator logowania firmy Microsoft Entra

Poniższy przykład ponownie mapuje nazwę użytkownika, westus\joe na joe_alias. W tym przypadku odpowiedni identyfikator logowania firmy Microsoft Entra jest joe@westus.com.

ALTER USER [westus/joe] WITH LOGIN = [joe@westus.com], name= joe_alias

G. Mapowanie grupy systemu Windows, która została zmigrowana w usłudze Azure SQL Managed Instance do grupy firmy Microsoft Entra

Poniższy przykład ponownie mapuje starą grupę lokalną, westus\mygroup do grupy Microsoft Entra mygroup w wystąpieniu zarządzanym. Grupa musi istnieć w identyfikatorze Entra firmy Microsoft.

ALTER USER [westus\mygroup] WITH LOGIN = mygroup;

usługi SQL Managed Instance

* Azure Synapse
Analiza *

 

Azure Synapse Analytics

Syntax

-- Syntax for Azure Synapse

ALTER USER user_name
 WITH <set_item> [ ,...n ]

<set_item> ::=
 NAME = new_user_name
 | LOGIN = login_name
 | DEFAULT_SCHEMA = schema_name
[;]

Arguments

user_name

Określa nazwę, za pomocą której użytkownik jest identyfikowany w tej bazie danych.

LOGIN = login_name

Ponownie mapuje użytkownika na inne logowanie, zmieniając identyfikator zabezpieczeń użytkownika (SID), aby był zgodny z identyfikatorem SID logowania.

Jeśli instrukcja ALTER USER jest jedyną instrukcją w partii SQL, usługa Azure SQL Database obsługuje klauzulę WITH LOGIN. Jeśli instrukcja ALTER USER nie jest jedyną instrukcją w partii SQL lub jest wykonywana w dynamicznym języku SQL, klauzula WITH LOGIN nie jest obsługiwana.

NAME = new_user_name

Określa nową nazwę dla tego użytkownika. new_user_name nie może jeszcze istnieć w bieżącej bazie danych.

DEFAULT_SCHEMA = { schema_name | NULL }

Określa pierwszy schemat, który będzie wyszukiwany przez serwer podczas rozpoznawania nazw obiektów dla tego użytkownika. Ustawienie domyślnego schematu na NULL powoduje usunięcie domyślnego schematu z grupy systemu Windows. Opcji NULL nie można używać z użytkownikiem systemu Windows.

Remarks

Domyślny schemat będzie pierwszym schematem, który będzie przeszukiwany przez serwer podczas rozpoznawania nazw obiektów dla tego użytkownika bazy danych. Jeśli nie określono inaczej, domyślny schemat będzie właścicielem obiektów utworzonych przez tego użytkownika bazy danych.

Jeśli użytkownik ma domyślny schemat, używany jest ten schemat domyślny. Jeśli użytkownik nie ma schematu domyślnego, ale użytkownik jest członkiem grupy, która ma schemat domyślny, zostanie użyty domyślny schemat grupy. Jeśli użytkownik nie ma schematu domyślnego i jest członkiem więcej niż jednej grupy, domyślnym schematem dla użytkownika będzie grupa systemu Windows z najniższym principal_id i jawnie ustawiony schemat domyślny. Jeśli dla użytkownika nie można określić schematu domyślnego, zostanie użyty schemat dbo.

DEFAULT_SCHEMA można ustawić na schemat, który obecnie nie występuje w bazie danych. W związku z tym można przypisać DEFAULT_SCHEMA do użytkownika przed utworzeniem tego schematu.

DEFAULT_SCHEMA nie można określić dla użytkownika, który jest mapowany na certyfikat lub klucz asymetryczny.

Important

Wartość DEFAULT_SCHEMA jest ignorowana, jeśli użytkownik jest członkiem sysadmin stałej roli serwera. Wszyscy członkowie sysadmin stałej roli serwera mają domyślny schemat dbo.

Klauzula WITH LOGIN umożliwia ponowne mapowanie użytkownika na inne logowanie. Użytkownicy bez logowania, użytkownicy mapowane na certyfikat lub użytkownicy mapowane na klucz asymetryczny nie mogą być mapowane ponownie za pomocą tej klauzuli. Można ponownie mapować tylko użytkowników SQL i użytkowników systemu Windows (lub grupy). Klauzula WITH LOGIN nie może służyć do zmiany typu użytkownika, takiego jak zmiana konta systemu Windows na identyfikator logowania programu SQL Server.

Nazwa użytkownika zostanie automatycznie zmieniona na nazwę logowania, jeśli spełnione są następujące warunki.

  • Nie określono nowej nazwy.

  • Bieżąca nazwa różni się od nazwy logowania.

W przeciwnym razie nazwa użytkownika nie zostanie zmieniona, chyba że obiekt wywołujący dodatkowo wywołuje klauzulę NAME.

Nazwa użytkownika zamapowanego na identyfikator logowania programu SQL Server, certyfikat lub klucz asymetryczny nie może zawierać znaku ukośnika odwrotnego (\).

Note

Schematy nie są równoważne użytkownikom bazy danych. Użyj widoków wykazu systemu , aby zidentyfikować wszelkie różnice między użytkownikami bazy danych i schematami.

Zabezpieczenia

Note

Użytkownik, który ma ALTER ANY USER uprawnienia, może zmienić domyślny schemat dowolnego użytkownika. Użytkownik, który ma zmieniony schemat, może nieświadomie wybrać dane z niewłaściwej tabeli lub wykonać kod z nieprawidłowego schematu.

Permissions

Aby zmienić nazwę użytkownika, wymagane jest uprawnienie ALTER ANY USER.

Aby zmienić docelowe logowanie użytkownika, wymagane jest uprawnienie CONTROL w bazie danych.

Aby zmienić nazwę użytkownika z uprawnieniem CONTROL w bazie danych, wymagane jest uprawnienie CONTROL w bazie danych.

Aby zmienić domyślny schemat lub język, alter uprawnienia użytkownika. Użytkownicy mogą zmieniać własny domyślny schemat lub język.

Examples

Wszystkie przykłady są wykonywane w bazie danych użytkownika.

A. Zmienianie nazwy użytkownika bazy danych

Poniższy przykład zmienia nazwę użytkownika bazy danych Mary5 na Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Zmienianie domyślnego schematu użytkownika

Poniższy przykład zmienia domyślny schemat Mary51 użytkownika na Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

usługi SQL Managed Instance

* Analiza
System platformy (PDW) *

 

System platformy analizy

Syntax

-- Syntax for Analytics Platform System

ALTER USER user_name
 WITH <set_item> [ ,...n ]

<set_item> ::=
 NAME = new_user_name
 | LOGIN = login_name
 | DEFAULT_SCHEMA = schema_name
[;]

Arguments

user_name

Określa nazwę, za pomocą której użytkownik jest identyfikowany w tej bazie danych.

LOGIN = login_name

Ponownie mapuje użytkownika na inne logowanie, zmieniając identyfikator zabezpieczeń użytkownika (SID), aby był zgodny z identyfikatorem SID logowania.

Jeśli instrukcja ALTER USER jest jedyną instrukcją w partii SQL, usługa Azure SQL Database obsługuje klauzulę WITH LOGIN. Jeśli instrukcja ALTER USER nie jest jedyną instrukcją w partii SQL lub jest wykonywana w dynamicznym języku SQL, klauzula WITH LOGIN nie jest obsługiwana.

NAME = new_user_name

Określa nową nazwę dla tego użytkownika. new_user_name nie może jeszcze istnieć w bieżącej bazie danych.

DEFAULT_SCHEMA = { schema_name | NULL }

Określa pierwszy schemat, który będzie wyszukiwany przez serwer podczas rozpoznawania nazw obiektów dla tego użytkownika. Ustawienie domyślnego schematu na NULL powoduje usunięcie domyślnego schematu z grupy systemu Windows. Opcji NULL nie można używać z użytkownikiem systemu Windows.

Remarks

Domyślny schemat będzie pierwszym schematem, który będzie przeszukiwany przez serwer podczas rozpoznawania nazw obiektów dla tego użytkownika bazy danych. Jeśli nie określono inaczej, domyślny schemat będzie właścicielem obiektów utworzonych przez tego użytkownika bazy danych.

Jeśli użytkownik ma domyślny schemat, używany jest ten schemat domyślny. Jeśli użytkownik nie ma schematu domyślnego, ale użytkownik jest członkiem grupy, która ma schemat domyślny, zostanie użyty domyślny schemat grupy. Jeśli użytkownik nie ma schematu domyślnego i jest członkiem więcej niż jednej grupy, domyślnym schematem dla użytkownika będzie grupa systemu Windows z najniższym principal_id i jawnie ustawiony schemat domyślny. Jeśli dla użytkownika nie można określić schematu domyślnego, zostanie użyty schemat dbo.

DEFAULT_SCHEMA można ustawić na schemat, który obecnie nie występuje w bazie danych. W związku z tym można przypisać DEFAULT_SCHEMA do użytkownika przed utworzeniem tego schematu.

DEFAULT_SCHEMA nie można określić dla użytkownika, który jest mapowany na certyfikat lub klucz asymetryczny.

Important

Wartość DEFAULT_SCHEMA jest ignorowana, jeśli użytkownik jest członkiem sysadmin stałej roli serwera. Wszyscy członkowie sysadmin stałej roli serwera mają domyślny schemat dbo.

Klauzula WITH LOGIN umożliwia ponowne mapowanie użytkownika na inne logowanie. Użytkownicy bez logowania, użytkownicy mapowane na certyfikat lub użytkownicy mapowane na klucz asymetryczny nie mogą być mapowane ponownie za pomocą tej klauzuli. Można ponownie mapować tylko użytkowników SQL i użytkowników systemu Windows (lub grupy). Klauzula WITH LOGIN nie może służyć do zmiany typu użytkownika, takiego jak zmiana konta systemu Windows na identyfikator logowania programu SQL Server.

Nazwa użytkownika zostanie automatycznie zmieniona na nazwę logowania, jeśli spełnione są następujące warunki.

  • Nie określono nowej nazwy.

  • Bieżąca nazwa różni się od nazwy logowania.

W przeciwnym razie nazwa użytkownika nie zostanie zmieniona, chyba że obiekt wywołujący dodatkowo wywołuje klauzulę NAME.

Nazwa użytkownika zamapowanego na identyfikator logowania programu SQL Server, certyfikat lub klucz asymetryczny nie może zawierać znaku ukośnika odwrotnego (\).

Note

Schematy nie są równoważne użytkownikom bazy danych. Użyj widoków wykazu systemu , aby zidentyfikować wszelkie różnice między użytkownikami bazy danych i schematami.

Zabezpieczenia

Note

Użytkownik, który ma ALTER ANY USER uprawnienia, może zmienić domyślny schemat dowolnego użytkownika. Użytkownik, który ma zmieniony schemat, może nieświadomie wybrać dane z niewłaściwej tabeli lub wykonać kod z nieprawidłowego schematu.

Permissions

Aby zmienić nazwę użytkownika, wymagane jest uprawnienie ALTER ANY USER.

Aby zmienić docelowe logowanie użytkownika, wymagane jest uprawnienie CONTROL w bazie danych.

Aby zmienić nazwę użytkownika z uprawnieniem CONTROL w bazie danych, wymagane jest uprawnienie CONTROL w bazie danych.

Aby zmienić domyślny schemat lub język, alter uprawnienia użytkownika. Użytkownicy mogą zmieniać własny domyślny schemat lub język.

Examples

Wszystkie przykłady są wykonywane w bazie danych użytkownika.

A. Zmienianie nazwy użytkownika bazy danych

Poniższy przykład zmienia nazwę użytkownika bazy danych Mary5 na Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Zmienianie domyślnego schematu użytkownika

Poniższy przykład zmienia domyślny schemat Mary51 użytkownika na Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO