ALTER USER (Transact-SQL)
Bir veritabanı kullanıcısı adını değiştirir veya kendi varsayılan şemayı değiştirir.
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 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