ALTER USER (Transact-SQL)
Zmienia nazwę użytkownika bazy danych lub zmienia jego domyślny schemat.
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
usługi
Azure Synapse
analizy
SQL Server
Składnia
-- Syntax for SQL Server
ALTER USER userName
WITH <set_item> [ ,...n ]
[;]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
Argumenty
userName Określa nazwę, za pomocą której użytkownik jest identyfikowany w tej bazie danych.
LOGIN =loginName ponownie mapuje użytkownika na inną nazwę logowania, zmieniając identyfikator zabezpieczeń użytkownika (SID), aby był zgodny z identyfikatorem SID logowania.
NAZWA =newUserName Określa nową nazwę tego użytkownika. newUserName nie może jeszcze występować w bieżącej bazie danych.
DEFAULT_SCHEMA = { schemaName | 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.
Hasło = "hasła" dotyczy: SQL Server 2012 (11.x) i nowszych, SQL Database.
Określa hasło użytkownika, który jest zmieniany. W hasłach jest rozróżniana wielkość liter.
Nuta
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 nowszych, 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.
Nuta
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 nowszych.
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.
Nuta
Tę opcję można określić tylko w zawartej bazie danych i tylko dla zawartych użytkowników.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] Dotyczy: SQL Server 2016 (13.x) i nowszych, 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.
Ostrzeżenie
Niewłaściwe użycie tej opcji może prowadzić do uszkodzenia danych. Aby uzyskać więcej informacji, zobacz Migrate Sensitive Data Protected by Always Encrypted.
Uwagi
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 nie można określić domyślnego schematu dla użytkownika, zostanie użyty schemat
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.
Ważny
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 mapowanego na identyfikator logowania programu SQL Server, certyfikat lub klucz asymetryczny nie może zawierać znaku ukośnika odwrotnego (\).
Ostrożność
Począwszy od programu SQL Server 2005, zachowanie schematów zostało zmienione. W związku z tym kod, który zakłada, że schematy są równoważne użytkownikom bazy danych, mogą nie zwracać prawidłowych wyników. Stare widoki wykazu, w tym sysobjects, nie powinny być używane w bazie danych, w której kiedykolwiek były używane żadne z następujących instrukcji DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. W takich bazach danych należy zamiast tego używać nowych widoków wykazu. Nowe widoki wykazu uwzględniają rozdzielenie podmiotów zabezpieczeń i schematów, które zostały wprowadzone w programie SQL Server 2005. Aby uzyskać więcej informacji na temat widoków wykazu, zobacz widoki wykazu (Transact-SQL).
Bezpieczeństwo
Nuta
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.
Uprawnienia
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.
Przykłady
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. Zmiana kilku opcji jednocześnie
Poniższy przykład zmienia kilka opcji dla zawartego użytkownika bazy danych w jednej instrukcji.
Dotyczy: SQL Server 2012 (11.x) i nowsze.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per'
, 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
Zobacz też
* Azure SQL Database i SQL Database w sieci szkieletowej *
usługi
Azure Synapse
analizy
Usługa Azure SQL Database i baza danych SQL w usłudze Microsoft Fabric
Składnia
Składnia dla usługi Azure SQL Database
-- Syntax for Azure SQL Database
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = schemaName
| LOGIN = loginName
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
[;]
-- Azure SQL Database Update Syntax
ALTER USER userName
WITH <set_item> [ ,...n ]
[;]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
-- SQL Database syntax when connected to a federation member
ALTER USER userName
WITH <set_item> [ ,... n ]
[;]
<set_item> ::=
NAME = newUserName
Składnia bazy danych SQL w usłudze Microsoft Fabric
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
[;]
Argumenty
userName
Określa nazwę, za pomocą której użytkownik jest identyfikowany w tej bazie danych.
login =loginName
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.
NAZWA =newUserName
Określa nową nazwę dla tego użytkownika. newUserName nie może jeszcze występować w bieżącej bazie danych.
DEFAULT_SCHEMA = { schemaName | 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.
Hasło =hasła"
Dotyczy: SQL Database.
Określa hasło użytkownika, który jest zmieniany. W hasłach jest rozróżniana wielkość liter.
Nuta
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 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.
Nuta
Ta opcja jest dostępna tylko dla zawartych użytkowników.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
Dotyczy: SQL Server 2016 (13.x) i nowszych, 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.
Ostrzeżenie
Niewłaściwe użycie tej opcji może prowadzić do uszkodzenia danych. Aby uzyskać więcej informacji, zobacz Migrate Sensitive Data Protected by Always Encrypted.
Uwagi
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 nie można określić domyślnego schematu dla użytkownika, zostanie użyty schemat
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.
Ważny
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.
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 mapowanego na identyfikator logowania programu SQL Server, certyfikat lub klucz asymetryczny nie może zawierać znaku ukośnika odwrotnego (\).
Ostrożność
Począwszy od programu SQL Server 2005, zachowanie schematów zostało zmienione. W związku z tym kod, który zakłada, że schematy są równoważne użytkownikom bazy danych, mogą nie zwracać prawidłowych wyników. Stare widoki wykazu, w tym sysobjects, nie powinny być używane w bazie danych, w której kiedykolwiek były używane żadne z następujących instrukcji DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. W takich bazach danych należy zamiast tego używać nowych widoków wykazu. Nowe widoki wykazu uwzględniają rozdzielenie podmiotów zabezpieczeń i schematów, które zostały wprowadzone w programie SQL Server 2005. Aby uzyskać więcej informacji na temat widoków wykazu, zobacz widoki wykazu (Transact-SQL).
Bezpieczeństwo
Nuta
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.
Uprawnienia
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.
Przykłady
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. Zmiana kilku opcji jednocześnie
Poniższy przykład zmienia kilka opcji dla zawartego użytkownika bazy danych w jednej instrukcji.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per';
GO
Zobacz też
usługi
* SQL Managed Instance *
Azure Synapse
analizy
Azure SQL Managed Instance
Składnia
Ważny
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 = { schemaName | 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 userName
{ WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| 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 userName
{ WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
Argumenty
userName Określa nazwę, za pomocą której użytkownik jest identyfikowany w tej bazie danych.
LOGIN =loginName ponownie mapuje użytkownika na inną nazwę logowania, 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.
NAZWA =newUserName Określa nową nazwę tego użytkownika. newUserName nie może jeszcze występować w bieżącej bazie danych.
DEFAULT_SCHEMA = { schemaName | 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.
Hasło =hasła"
Określa hasło użytkownika, który jest zmieniany. W hasłach jest rozróżniana wielkość liter.
Nuta
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.
Nuta
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.
Nuta
Tę opcję można określić tylko w zawartej bazie danych i tylko dla zawartych użytkowników.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
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.
Ostrzeżenie
Niewłaściwe użycie tej opcji może prowadzić do uszkodzenia danych. Aby uzyskać więcej informacji, zobacz Migrate Sensitive Data Protected by Always Encrypted.
Uwagi
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 nie można określić domyślnego schematu dla użytkownika, zostanie użyty schemat
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.
Ważny
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.
Nuta
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 mapowanego na identyfikator logowania programu SQL Server, certyfikat lub klucz asymetryczny nie może zawierać znaku ukośnika odwrotnego (\).
Ostrożność
Począwszy od programu SQL Server 2005, zachowanie schematów zostało zmienione. W związku z tym kod, który zakłada, że schematy są równoważne użytkownikom bazy danych, mogą nie zwracać prawidłowych wyników. Stare widoki wykazu, w tym sysobjects, nie powinny być używane w bazie danych, w której kiedykolwiek były używane żadne z następujących instrukcji DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. W takich bazach danych należy zamiast tego używać nowych widoków wykazu. Nowe widoki wykazu uwzględniają rozdzielenie podmiotów zabezpieczeń i schematów, które zostały wprowadzone w programie SQL Server 2005. Aby uzyskać więcej informacji na temat widoków wykazu, zobacz widoki wykazu (Transact-SQL).
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
lubX
. - 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.
- Nowe rozszerzenie składni, FROM EXTERNAL PROVIDER jest dostępne do zmiany 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 dotyczy 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 dozwoloną nazwą użytkownika może być:
- Użytkownik wdowy (domena\użytkownik).
- Grupa systemu Windows (MyWindowsGroup).
- Alias systemu Windows (MyWindowsAlias).
- Wynik polecenia ALTER zastępuje starą nazwę userName odpowiednią nazwą znajdującą się w identyfikatorze Entra firmy Microsoft na podstawie oryginalnego identyfikatora SID starego userName. Zmieniona nazwa jest zastępowana i przechowywana w metadanych bazy danych:
- (domena\użytkownik) zostanie zastąpiony user@domain.comMicrosoft Entra .
- (domain\MyWindowsGroup) zostanie zastąpiony grupą Microsoft Entra.
- (MyWindowsAlias) pozostanie niezmieniona, ale identyfikator SID tego użytkownika zostanie zaewidencjonowany w identyfikatorze Entra firmy Microsoft.
Nuta
Jeśli nie można odnaleźć identyfikatora SID oryginalnego użytkownika przekonwertowanego na objectID w identyfikatorze Entra firmy Microsoft, 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
lubX
. - 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 identyfikatorze Entra firmy Microsoft i może być tylko:
- Nazwa logowania.
- Alias — nazwa nie może istnieć w identyfikatorze Entra firmy Microsoft.
- We wszystkich innych przypadkach składnia zakończy się niepowodzeniem.
Bezpieczeństwo
Nuta
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.
Uprawnienia
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.
Przykłady
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. Zmiana kilku opcji jednocześnie
Poniższy przykład zmienia kilka opcji dla zawartego użytkownika bazy danych w jednej instrukcji.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per'
, 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
Zobacz też
usługi
usługi
* Azure Synapse
Analiza *
Azure Synapse Analytics
Składnia
-- Syntax for Azure Synapse
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| LOGIN = loginName
| DEFAULT_SCHEMA = schema_name
[;]
Argumenty
userName Określa nazwę, za pomocą której użytkownik jest identyfikowany w tej bazie danych.
LOGIN =loginName ponownie mapuje użytkownika na inną nazwę logowania, 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.
NAZWA =newUserName Określa nową nazwę tego użytkownika. newUserName nie może jeszcze występować w bieżącej bazie danych.
DEFAULT_SCHEMA = { schemaName | 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.
Uwagi
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 nie można określić domyślnego schematu dla użytkownika, zostanie użyty schemat
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.
Ważny
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 mapowanego na identyfikator logowania programu SQL Server, certyfikat lub klucz asymetryczny nie może zawierać znaku ukośnika odwrotnego (\).
Ostrożność
Począwszy od programu SQL Server 2005, zachowanie schematów zostało zmienione. W związku z tym kod, który zakłada, że schematy są równoważne użytkownikom bazy danych, mogą nie zwracać prawidłowych wyników. Stare widoki wykazu, w tym sysobjects, nie powinny być używane w bazie danych, w której kiedykolwiek były używane żadne z następujących instrukcji DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. W takich bazach danych należy zamiast tego używać nowych widoków wykazu. Nowe widoki wykazu uwzględniają rozdzielenie podmiotów zabezpieczeń i schematów, które zostały wprowadzone w programie SQL Server 2005. Aby uzyskać więcej informacji na temat widoków wykazu, zobacz widoki wykazu (Transact-SQL).
Bezpieczeństwo
Nuta
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.
Uprawnienia
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.
Przykłady
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
Zobacz też
usługi
usługi
Azure Synapse
analizy
* Analiza
System platformy (PDW) *
System platformy analizy
Składnia
-- Syntax for Analytics Platform System
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| LOGIN = loginName
| DEFAULT_SCHEMA = schema_name
[;]
Argumenty
userName Określa nazwę, za pomocą której użytkownik jest identyfikowany w tej bazie danych.
LOGIN =loginName ponownie mapuje użytkownika na inną nazwę logowania, 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.
NAZWA =newUserName Określa nową nazwę tego użytkownika. newUserName nie może jeszcze występować w bieżącej bazie danych.
DEFAULT_SCHEMA = { schemaName | 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.
Uwagi
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 nie można określić domyślnego schematu dla użytkownika, zostanie użyty schemat
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.
Ważny
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 mapowanego na identyfikator logowania programu SQL Server, certyfikat lub klucz asymetryczny nie może zawierać znaku ukośnika odwrotnego (\).
Ostrożność
Począwszy od programu SQL Server 2005, zachowanie schematów zostało zmienione. W związku z tym kod, który zakłada, że schematy są równoważne użytkownikom bazy danych, mogą nie zwracać prawidłowych wyników. Stare widoki wykazu, w tym sysobjects, nie powinny być używane w bazie danych, w której kiedykolwiek były używane żadne z następujących instrukcji DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. W takich bazach danych należy zamiast tego używać nowych widoków wykazu. Nowe widoki wykazu uwzględniają rozdzielenie podmiotów zabezpieczeń i schematów, które zostały wprowadzone w programie SQL Server 2005. Aby uzyskać więcej informacji na temat widoków wykazu, zobacz widoki wykazu (Transact-SQL).
Bezpieczeństwo
Nuta
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.
Uprawnienia
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.
Przykłady
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