Aracılığıyla paylaş


ALTER USER (Transact-SQL)

Bir veritabanı kullanıcısı adını değiştirir veya kendi varsayılan şemayı değiştirir.

Topic link iconTransact-SQL sözdizimi kuralları

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

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

Bağımsız değişkenler

  • userName
    Kullanıcı bu veritabanını içinde tanımlanır adını belirtir.

  • LOGIN **=**loginName
    Başka bir oturum açma için kullanıcı oturum açma'nın SID eşleştirmek için kullanıcının güvenlik tanımlayıcısı (SID) değiştirerek re-maps.

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

  • DEFAULT_SCHEMA **=**schemaName
    Bu kullanıcı nesnelerinin adlarını da giderir, sunucu tarafından Aranan ilk şema belirtir.

Remarks

DEFAULT_SCHEMA bırakılırsa tanımlanmamış, kullanıcının gerekir dbo olarak kendi varsayılan şema.Veritabanında şu anda oluşmaz bir şemaya DEFAULT_SCHEMA ayarlayabilirsiniz.Bu nedenle, bu şema oluşturulmadan önce kullanıcıya bir DEFAULT_SCHEMA atayabilirsiniz.Bir Windows grubu, bir sertifika veya bir asimetrik anahtar eşleştirilen bir kullanıcının DEFAULT_SCHEMA belirtilemez.

Important noteImportant Note:

Kullanıcının üyesi olduğu DEFAULT_SCHEMA değeri yoksayılır sysadmin sabit sunucu rolü.Tüm üyeleri sysadmin var olan bir varsayılan şema sabit sunucu rolüdbo.

SID yeni bir kullanıcı adı veritabanında kayıtlı olan SID eşleştiğinde eşleştirilen Windows oturumu açma veya gruba bir kullanıcı adını değiştirebilirsiniz.Bu denetim, özel olarak Windows oturumlarının listelendiği veritabanındaki Sızdırma engellenmesine yardımcı olur.

Oturum AÇMA, WITH yan tümce, bir kullanıcı farklı bir oturum için yeniden eşleme sağlar.Bir oturum, bir sertifikayla eşleştirilmiş olan kullanıcıları veya bir asimetrik anahtar eşlenmiş kullanıcılar olmayan kullanıcıların bu re-mapped olamaz yan tümce.Yalnızca SQL kullanıcıların Windows kullanıcıları (ve grupları) remapped.Kullanıcı, bir Windows hesabına değiştirme gibi türünü değiştirmek için oturum AÇMA, WITH yan tümcesinde kullanılamaz bir SQL Server oturum açma.

Aşağıdaki koşullar doğruysa, kullanıcı adı için oturum açma adını otomatik olarak adlandırılır.

  • Bir Windows kullanıcısı kullanıcıdır.

  • Bir Windows adı (ters eğik çizgi içeren) adıdır.

  • Yeni bir ad belirtilmedi.

  • Geçerli adı oturum açma adı değişir.

Arayanın, ayrıca AD yan tümce çağırır sürece aksi halde, kullanıcı adlandırılacak değil.

Not

ALTER ANY USER iznine sahip BIR kullanıcı herhangi bir kullanıcının varsayılan şemayı değiştirebilirsiniz.Değiştirilen bir şema olan BIR kullanıcı yanlış veri bilmeden seçebilirsiniz tablo veya yanlış şemadan kod yürütebilir.

Eşleştirilen bir kullanıcının adını bir SQL Server oturum açma, sertifika veya asimetrik anahtar ters eğik çizgi (\) içeremez.

Uyarı

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).

İzinler

Bir kullanıcı adını değiştirmek için ALTER ANY USER veritabanında'ni gerektirir.Varsayılanı değiştirmek için ALTER iznine kullanıcı şema gerektirir.Kullanıcılar yalnızca kendi varsayılan şemayı değiştirebilirsiniz.

Bir kullanıcıya oturum açma yeniden eşleştirmek için veritabanı üzerinde DENETIM izni gerektirir.

Örnekler

C.Bir veritabanı kullanıcısı adını değiştirme

Aşağıdaki örnek veritabanı kullanıcısı adını değiştirir... Mary5 için Mary51.

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

b.Bir kullanıcının varsayılan şemayı değiştirme

Aşağıdaki örnek, kullanıcı varsayılan şemayı değiştirir Mary51 için Purchasing.

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