ALTER USER (języka Transact-SQL)

Zmienia nazwę użytkownika bazy danych lub zmienia jego domyślnego schematu.

Topic link iconKonwencje składni języka Transact-SQL

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

<set_item> ::= 
     NAME = newUserName 
     | DEFAULT_SCHEMA = schemaName
     | LOGIN = loginName

Argumenty

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

  • LOGIN **=**loginName
    Re-Maps użytkownika do innego identyfikatora logowania przez zmianę przez użytkownika identyfikator zabezpieczeń (SID) do identyfikatora SID logowania użytkownika.

  • NAME **=**newUserName
    Specifies the new name for this user.newUserName must not already occur in the current database.

  • DEFAULT_SCHEMA **=**schemaName
    Określa pierwszy schematu, które będą przeszukiwane przez serwer, kiedy jest rozwiązywana jako nazwy obiektów dla tego użytkownika.

Remarks

Jeśli pozostanie DEFAULT_SCHEMA niezdefiniowana, użytkownik będzie miał dbo jako swojego domyślnego schematu.zestaw DEFAULT_SCHEMA schematu, który nie jest aktualnie wykonywana w bazie danych.Z tego powodu można przypisać do użytkownika DEFAULT_SCHEMA, przed utworzeniem tego schematu.Nie można określić DEFAULT_SCHEMA dla użytkownika, który jest mapowany do grupy systemu Windows, certyfikat lub klucz asymetryczne.

Important noteImportant Note:

Wartość DEFAULT_SCHEMA jest ignorowany, jeśli użytkownik jest członkiem sysadmin stała rola serwera.Wszyscy członkowie sysadmin ustala rolę serwera ma domyślny schemat z dbo.

Można zmienić nazwę użytkownika, który jest mapowany do identyfikatora logowania systemu Windows lub grupy, tylko wtedy, gdy identyfikator SID nowej nazwy użytkownika pasuje do identyfikatora SID, które są rejestrowane w bazie danych.Ten test pomaga zapobiec podszywaniu identyfikatorów logowania systemu Windows w bazie danych.

Klauzula WITH LOGIN umożliwia ponowne mapowanie użytkownika, który ma inny identyfikator logowania.Użytkownicy, którzy nie mają identyfikator logowania, użytkownicy mapowane do certyfikat lub użytkowników, mapowane na kluczu asymetrycznym, który nie może być re-mapped z tę klauzulę.Tylko użytkownicy programu SQL i użytkowników systemu Windows (lub grupy) mogą być ponownie mapowany.Nie można użyć klauzula WITH LOGIN Aby zmienić typ użytkownika, takie jak zmiana konta systemu Windows do SQL Server Zaloguj się.

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

  • Użytkownik jest użytkownikiem systemu Windows.

  • Nazwa jest nazwą systemu Windows (zawiera odwrócona kreska ułamkowa).

  • Nowa nazwa nie została określona.

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

W przeciwnym wypadku użytkownik nie zostanie zmieniona, chyba że obiekt wywołujący dodatkowo wywołuje klauzula nazwę pola.

Uwaga

Użytkownik mający uprawnienie ALTER USER bez można zmienić domyślny schemat przez dowolnego użytkownika.Użytkownik, który został zmieniony schemat może być zakupione w dobrej wierze danych z niewłaściwej tabela lub z niewłaściwym schematem na wykonać kodu.

Nazwa użytkownika, mapowany SQL Server Identyfikator logowania, certyfikat lub kluczu asymetrycznego, który nie może zawierać znaku kreski ułamkowej odwróconej (\).

Ostrzeżenie

Beginning with SQL Server 2005, the behavior of schemas changed. As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements have ever been used: 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. In such databases you must instead use the new catalog views. The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. For more information about catalog views, see Catalog Views (Transact-SQL).

Uprawnienia

Aby zmienić nazwę użytkownika wymaga ALTER USER bez w bazie danych.Aby zmienić domyślny schemat wymaga ALTER uprawnienia użytkownika.Użytkownicy mogą zmieniać tylko własne domyślnego schematu.

Wymaga uprawnienia kontroli do bazy danych, aby ponownie zamapować użytkownika do identyfikatora logowania.

Przykłady

A.Zmiana nazwy użytkownika bazy danych

W poniższym przykładzie zmienia nazwę użytkownika bazy danych Mary5 Aby Mary51.

USE AdventureWorks;
ALTER USER Mary5 WITH NAME = Mary51;
GO 

B.Zmiana domyślnego schematu przez użytkownika

W poniższym przykładzie zmienia domyślny schemat użytkownika Mary51 Aby Purchasing.

USE AdventureWorks;
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO