Aracılığıyla paylaş


Kullanıcı (Transact-SQL) Değiştir

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

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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

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

Bağımsız değişkenler

  • userName
    Bu veritabanı içinde kullanıcı tarafından tanımlanır adını belirtir.

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

  • NAME =newUserName
    Bu kullanıcı için yeni bir ad belirtir.newUserNamezaten geçerli veritabanında ortaya gerekir.

  • default_schema =schemaName
    Bu kullanıcı nesnelerinin adlarını çözümler olduğunda sunucu tarafından aranan ilk şema belirtir.

Açıklamalar

default_schema bırakılırsa undefined, kullanıcının olacaktır dbo olarak kendi varsayılan şema.default_schema küme veritabanında şu anda oluşmaz bir şema olabilir.Bu nedenle, bu şema oluşturulmadan önce kullanıcıya bir default_schema atayabilirsiniz.default_schema bir Windows grubu, bir sertifikaveya bir asimetrik anahtareşlenen bir kullanıcı için belirtilemez.

Önemli notÖnemli

Kullanıcı üye ise default_schema değerini göz ardı sysadmin sabit sunucu rolü.Tüm üyeleri sysadmin sabit sunucu rolü sahip varsayılan şeması, dbo.

Yeni bir kullanıcı adı SID veritabanında kayıtlı olan SID eşleştiğinde bir Windows oturumu açma veya gruba eşleştirilir kullanıcı adını değiştirebilirsiniz.Bu denetim, veritabanında Windows oturumu açma, sahtekarlığı önlemeye yardımcı olur.

yan tümce ile oturum açma, kullanıcı için farklı bir oturum açma yeniden eşleme sağlar.Bir oturum açma, kullanıcıların bir sertifikaeşlenen veya bir asimetrik anahtar eşlenen kullanıcılar olmayan kullanıcılar bu ' % s'yan yan tümceile re-mapped olamaz.Yalnızca SQL kullanıcılar ve Windows kullanıcıları (veya grup) eşlenir.Bir Windows hesabı değiştirme gibi kullanıcı türünü değiştirmek için yan tümce ile oturum açma kullanılamaz bir SQL Server oturum açma.

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

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

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

  • Yeni bir ad belirtildi.

  • Geçerli adı oturum açma adı farklıdır.

Arayan ayrıca adı yan tümceçağırır sürece Aksi takdirde kullanıcı adlandırılacaklar değil.

Not

HERHANGİ bir kullanıcı alter izni olan bir kullanıcı, herhangi bir kullanıcı varsayılan şema değiştirebilirsiniz.Değiştirilen bir şema olan kullanıcı kuşkulanırsam veri yanlış tablo veya yürütmek kodundan yanlış şemayı seçin.

Eşlenen kullanıcı adını bir SQL Server login, bir sertifikaveya asimetrik anahtar ters eğik çizgi (\) içeremez.

Dikkat notuDikkat

SQL Server 2005'ten itibaren şemaların davranışları değişmiştir. Bunun sonucunda, şemaların veritabanı kullanıcılarına denk olduğunu kabul eden kod artık doğru sonuçlar döndürmeyebilir. Eski katalog görünümleri, sysobjects dahil, aşağıdaki DLL ifadelerinden herhangi birinin kullanıldığı bir veritabanında kullanılmamalıdır: 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. Bu gibi veritabanlarında bunun yerine yeni katalog görünümlerini kullanmalısınız. Yeni katalog görünümleri, ilk olarak SQL Server 2005 içinde kullanılan prensiplerin ve şemaların ayrılmasını dikkate alır. Katalog görünümleri hakkında daha fazla bilgi için bkz. Catalog Views (Transact-SQL) (Katalog Görünümleri (Transact-SQL)).

İzinler

Kullanıcı adını değiştirmek için alter any user veritabanında gerektirir.Varsayılan değeri değiştirmek için şema kullanıcı üzerinde alter izni gerektirir.Kullanıcılar yalnızca kendi varsayılan şemayı değiştirebilir.

Bir kullanıcı bir oturum için yeniden eşlediniz veritabanı üzerinde denetim izni gerektirir.

Örnekler

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

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

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

B.Bir kullanıcının varsayılan şema değiştirme

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

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