Kullanıcı (Transact-SQL) oluştur

Kullanıcı, geçerli veritabanına ekler.

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

Sözdizimi

CREATE USER user_name 
    [ { { FOR | FROM }
      { 
        LOGIN login_name 
        | CERTIFICATE cert_name 
        | ASYMMETRIC KEY asym_key_name
      } 
      | WITHOUT LOGIN
    ] 
    [ WITH DEFAULT_SCHEMA = schema_name ]

Bağımsız değişkenler

  • user_name
    Bu veritabanı içinde kullanıcı tarafından tanımlanır adını belirtir.user_nameis a sysname.Bu, en çok 128 karakter uzunluğunda olabilir.

  • OTURUM AÇMAlogin_name
    Belirtir SQL Server veritabanı kullanıcı oluşturulurken login.login_nameSunucu geçerli bir oturumu olması gerekir.Zaman bu SQL Server login Al adını ve Kimliğini oluşturulan veritabanı veritabanı girer.

  • SERTİFİKAcert_name
    Veritabanı kullanıcı oluşturulmaktadır sertifika belirtir.

  • ASİMETRİK ANAHTARasym_key_name
    Veritabanı kullanıcı oluşturulmaktadır asimetrik anahtar belirtir.

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

  • LOGIN
    Kullanıcı bir varolan oturumuna eşlenmiş olması gereken değil olduğunu belirtir.

Açıklamalar

Oturum açma için atlanırsa, yeni veritabanı kullanıcı için eşleştirilir SQL Server login ile aynı adı.

default_schema bırakılırsa undefined, veritabanı kullanıcısı kullanacağı dbo olarak kendi varsayılan şema.default_schema küme bir şemaya veritabanında bulunmuyor olabilir.İşaret şema oluşturulmadan önce default_schema küme olabilir.Bir Windows grubu, bir sertifikaveya bir asimetrik anahtareşlenen kullanıcı oluştururken default_schema 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.

LOGIN olmadan yan tümce bir SQL Server oturumu eşlenen değil bir kullanıcı oluşturur.Diğer veritabanlarına bağlanmak guest.

Eşlenir kullanıcıların adlarını SQL Server oturumları, sertifikalar veya asimetrik anahtarlar ters eğik çizgi (\) içeremez.

Oluşturmak için create user kullanılamaz bir guest kullanıcı için guest kullanıcı zaten var içinde her veritabanı.Etkinleştirmek guest tarafından gösterilen connect izni verme, kullanıcı:

GRANT CONNECT TO guest;
GO

Veritabanı kullanıcılar hakkındaki bilgileri görünür sys.database_principals Katalog görünümü.

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

HERHANGİ bir kullanıcı alter veritabanı izni gerektirir.

Örnekler

A.Bir veritabanı kullanıcısı oluşturma

Aşağıdaki örnek, ilk adlı bir sunucu oturumu oluşturur AbolrousHazem bir parola ile ve karşılık gelen veritabanı kullanıcı oluşturur AbolrousHazem , AdventureWorks2008R2.

CREATE LOGIN AbolrousHazem 
    WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
USE AdventureWorks2008R2;
CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;
GO 

B.Bir veritabanı kullanıcısı olan bir varsayılan şema oluşturma

Aşağıdaki örnek, ilk adlı bir sunucu oturumu oluşturur WanidaBenshoof bir parola ile ve karşılık gelen veritabanı kullanıcı oluşturur Wanida, varsayılan şema Marketing.

CREATE LOGIN WanidaBenshoof 
    WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';
USE AdventureWorks2008R2;
CREATE USER Wanida FOR LOGIN WanidaBenshoof 
    WITH DEFAULT_SCHEMA = Marketing;
GO

C.sertifikaveritabanı kullanıcısı oluşturma

Aşağıdaki örnek, veritabanı kullanıcı oluşturur JinghaoLiu sertifika CarnationProduction50.

USE AdventureWorks2008R2;
CREATE CERTIFICATE CarnationProduction50
    WITH SUBJECT = 'Carnation Production Facility Supervisors',
    EXPIRY_DATE = '11/11/2011';
GO
CREATE USER JinghaoLiu FOR CERTIFICATE CarnationProduction50;
GO 

D.Oluşturma ve bir kullanıcı bir oturum olmadan kullanma

Aşağıdaki örnek, veritabanı kullanıcı oluşturur CustomApp , değil eşlemek için bir SQL Server oturum açma.Örnek daha sonra bir kullanıcı verir adventure-works\tengiz0 almasına izin CustomApp kullanıcı.

USE AdventureWorks2008R2 ;
CREATE USER CustomApp WITHOUT LOGIN ;
GRANT IMPERSONATE ON USER::CustomApp TO [adventure-works\tengiz0] ;
GO 

Kullanmak için CustomApp kimlik bilgileri, kullanıcı adventure-works\tengiz0 aşağıdaki deyimyürütür.

EXECUTE AS USER = 'CustomApp' ;
GO

Geri dönmek için adventure-works\tengiz0 kimlik bilgileri, kullanıcı aşağıdaki deyimyürütür.

REVERT ;
GO