ZMIEŃ użytkownika (Transact-SQL)

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

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

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

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

Argumenty

  • userName
    Nazwa identyfikująca użytkownika wewnątrz tej bazy danych.

  • LOGIN =loginName
    Re-Maps użytkownika do innego identyfikatora logowania, zmieniając użytkownika identyfikator zabezpieczeń (SID) do logowania SID.

  • NAME =newUserName
    Określa nową nazwę dla tego użytkownika.newUserNamemusi już występuje w bieżącej bazie danych.

  • DEFAULT_SCHEMA =schemaName
    Określa pierwszy schematu, które będą przeszukiwane przez serwer podczas rozpoznaje nazwy obiektów dla tego użytkownika.

Uwagi

Jeśli DEFAULT_SCHEMA jest niezdefiniowana, użytkownik będzie miał dbo jako jego schemat domyślny.DEFAULT_SCHEMA można zestaw schemat, który obecnie 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 do grupy systemu Windows, certyfikatlub kluczasymetrycznego.

Ważna informacjaWażne:

Wartość DEFAULT_SCHEMA jest ignorowana, jeśli użytkownik jest element członkowski sysadmin stała rola serwera.Wszyscy członkowie sysadmin stała rola 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 SID nową nazwę użytkownika pasuje do SID jest rejestrowane w bazie danych.Tego wyboru zapobiega fałszowaniu identyfikatorów logowania systemu Windows w bazie danych.

Logowanie Z klauzula umożliwia ponowne mapowanie użytkownika do innego identyfikatora logowania.Użytkownicy bez identyfikatora logowania, mapowania certyfikatużytkowników lub użytkowników mapowane do klucz asymetrycznego nie może być re-mapped z tej klauzula.Tylko użytkownicy SQL i użytkowników systemu Windows (lub grupy) można ponownie mapowany.Logowanie Z klauzula nie można zmienić typ użytkownika, takie jak zmiana konta systemu Windows, aby SQL Server logowania.

Nazwa użytkownika zostanie automatycznie zmieniona nazwa 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 wywołuje dodatkowo nazwę klauzula.

Ostrzeżenie

Użytkownik, który ma uprawnienie Zmiana dowolny użytkownik można zmienić domyślny schemat dowolnego użytkownika.Użytkownik, który został zmieniony schemat może nieświadomie wybierz dane z niewłaściwej tabela lub wykonać kodu z nieprawidłowego schematu.

Nazwa użytkownika mapowany na SQL Server logowania, certyfikatlub klucz asymetrycznego nie może zawierać znaku kreski ułamkowej odwróconej (\).

PrzestrogaPrzestroga

Począwszy od programu SQL Server 2005 zachowanie schematów zostało zmienione. Z tego powodu kod źródłowy, który traktuje schematy jak odpowiedniki użytkowników baz danych, może przestać zwracać poprawne wyniki. Starych widoków wykazu, w tym sysobjects, nie należy używać w bazie danych, w której są używane następujące instrukcje 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 używać nowych widoków wykazu. W nowych widokach wykazu uwzględniono rozdział podmiotów i schematów, który został wprowadzony w programie SQL Server 2005. Aby uzyskać więcej informacji dotyczących widoków wykazu, zobacz temat Widoki wykazu (Transact-SQL).

Uprawnienia

Aby zmienić nazwę użytkownika wymaga zmiany dowolny użytkownik w bazie danych.Aby zmienić domyślny schemat wymaga zmiany uprawnień użytkownika.Użytkownicy mogą zmieniać tylko własne domyślnego schematu.

Wymaga uprawnienie Kontrola na bazie przemapować użytkownikowi identyfikatora logowania.

Przykłady

A.Zmiana nazwy użytkownika bazy danych

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

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

B.Zmiana domyślnego schematu użytkownika

Poniższy przykład przedstawia zmianę domyślnego schematu użytkownik Mary51 do Purchasing.

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