alter USER (Transact-sql)

Veritabanı kullanıcı adını değiştirir veya kendi varsayılan şema değişiklikleri.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

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

<set_item> ::= 
      NAME = newUserName 
    | DEFAULT_SCHEMA = { schemaName | NULL }
    | LOGIN = loginName
    | PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
    | DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }

Bağımsız değişkenler

  • userName
    Veritabanında kullanıcının kimliğinin tanımlanması için kullanılacak adı belirtir.

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

  • NAME **=**newUserName
    Bu kullanıcı için yeni bir ad belirtir. newUserNamezaten geçerli veritabanında bulunması gerekir değil.

  • default_schema = { schemaName| null}
    Bu kullanıcı nesnelerinin adlarını çözümler olduğunda sunucu tarafından aranan ilk şema belirtir. Varsayılan şema null olarak ayarlama varsayılan şemayı Windows gruptan kaldırır. BOŞ seçeneği bir Windows kullanıcısı ile kullanılamaz.

  • PAROLA = 'password'
    Değiştirilmesini kullanıcının parolasını belirtir. Parolalar büyük/küçük harf duyarlıdır.

    [!NOT]

    Bu seçenek, yalnızca bulunan kullanıcılar için kullanılabilir. Bakın İçerdiği veritabanlarıve sp_migrate_user_to_contained (Transact-sql)daha fazla bilgi için.

  • old_password ='oldpassword'
    Geçerli Kullanıcı parolasının değiştirilir 'password'. Parolalar büyük/küçük harf duyarlıdır. OLD_PASSWORDsürece sen-si olmak bir şifre değiştirmek için gerekli olan ALTER ANY USERizni. Gerektiren OLD_PASSWORDkullanıcılarla engeller IMPERSONATIONparolasını değiştirmesine izin.

    [!NOT]

    Bu seçenek, yalnızca bulunan kullanıcılar için kullanılabilir.

  • default_language ={ NONE | <lcid> | <language name> | <language alias> }
    Kullanıcıya atanacak varsayılan dili belirtir. Bu seçenek yok olarak ayarlanmışsa, varsayılan dil veritabanı geçerli varsayılan dil için ayarlanır. Daha sonra veritabanı için varsayılan dili değiştirdiyseniz, kullanıcının varsayılan dilini değişmeden kalır. DEFAULT_LANGUAGEYerel kimlik (LCID), dil ya da dil takma adı olabilir.

    [!NOT]

    Bu seçenek, yalnızca içerdiği veritabanı ve içerdiği kullanıcılar yalnızca belirtilebilir.

Açıklamalar

Varsayılan şema, sunucunun bu veritabanı kullanıcısının nesnelerinin adlarını çözümlerken arayacağı ilk şema olur. Aksi belirtilmedikçe, varsayılan şema, bu veritabanı kullanıcısının oluşturduğu nesnelerin sahibi olur.

Kullanıcının varsayılan bir şeması varsa, varsayılan şema kullanılır. Kullanıcının varsayılan bir şeması yoksa, ancak kullanıcı varsayılan bir şeması olan bir gruba üyeyse, grubun varsayılan şeması kullanılır. Kullanıcı varsayılan şema yok ve bir varsayılan şema sahip birden fazla grubun üyesi ise, şemanın Windows grubu ile en düşük principle_id kullanılacaktır. Eğer kullanıcı için hiçbir varsayılan şema belirlenebilir dbo şeması kullanılır.

default_schema, şu anda veritabanında oluşmaz bir şema ayarlanabilir. Bu nedenle, bu şema oluşturmadan önce bir default_schema kullanıcıya atayabilirsiniz.

default_schema, bir sertifika veya asimetrik anahtar eşlenen kullanıcı için belirtilemez.

Önemli notÖnemli

Kullanıcı bir üyesi ise default_schema değeri yoksayılır sysadmin sunucu rolü. Tüm üyeleri sysadmin sabit sunucu rolü olan bir varsayılan şema dbo.

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

GİRİŞ ile yan tümcesi, bir kullanıcı farklı bir oturum için yeniden eşleme sağlar. Bir giriş, bir sertifikayla eşleştirilmiş kullanıcılar veya kullanıcı eşlenen bir asimetrik anahtar olmayan kullanıcıların bu fıkra ile re-mapped olamaz. Yalnızca sql kullanıcılar ve Windows kullanıcıları (veya dosya grupları) remapped. Kullanıcı bir Windows hesabına değiştirme gibi türünü değiştirmek için giriş ile yan kullanılamaz bir SQL Servergiriş.

Aşağıdaki koşullar doğruysa, kullanıcı adı oturum açma adına 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 belirtilmelidir.

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

Arayan Ayrıca adı yan tümcesi çağırır sürece aksi takdirde kullanıcı adlandırılacaklar değil.

Eşleşen bir kullanıcı adı bir SQL Servergiriş, bir sertifika veya asimetrik anahtar 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)).

Güvenlik

[!NOT]

Olan bir kullanıcı ALTER ANY USERizni herhangi bir kullanıcı varsayılan şema değişebilir. Değişmiş bir şeması olan kullanıcı bilmeden yanlış tablodan verileri seçin veya yanlış şemadan kod yürütebilir.

İzinler

Bir kullanıcının adını değiştirebilir veya farklı bir oturum kullanıcıya eşleştirmek için gerekli ALTER ANY USERizni.

Varsayılan şema ya da dilini değiştirmek için gerekli ALTERkullanıcı izni. Kullanıcılar, yalnızca kendi varsayılan şema veya dili değiştirebilirsiniz.

Örnekler

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

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

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

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

B.Kullanıcı varsayılan şema değiştirme

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

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

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

C.Aynı anda birkaç seçeneklerini değiştirme

Aşağıdaki örnek bir deyimi içinde kapsanan kullanıcı için çeşitli seçenekler değişir.

USE AdventureWorks2012;
GO 
ALTER USER Philip 
WITH  NAME = Philipe 
    , DEFAULT_SCHEMA = Development 
    , PASSWORD = 'W1r77TT98%ab@#’ OLD_PASSWORD = 'New Devel0per' 
    , DEFAULT_LANGUAGE  = French ;
GO

USE AdventureWorks2012;
GO 
ALTER USER Philip 
WITH  NAME = Philipe 
    , DEFAULT_SCHEMA = Development 
    , PASSWORD = 'W1r77TT98%ab@#’ OLD_PASSWORD = 'New Devel0per' 
    , DEFAULT_LANGUAGE  = French ;
GO

Ayrıca bkz.

Başvuru

CREATE USER (Transact-SQL)

USER (Transact-sql) bırak

eventdata (Transact-sql)

sp_migrate_user_to_contained (Transact-sql)

Kavramlar

İçerdiği veritabanları