Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Geçerli veritabanına bir kullanıcı ekler. 13 kullanıcı türü, en temel söz diziminin bir örneğiyle listelenir:
Not
Microsoft Entra ID,Azure Active Directory (Azure AD) için
Windows Active Directory hesabını temel alan oturum açma bilgilerini temel alan kullanıcı.
CREATE USER [Contoso\Fritz];
Kullanıcı, Windows grubunu temel alan oturum açma bilgilerini temel alır.
CREATE USER [Contoso\Sales];
SQL Server kimlik doğrulaması kullanarak oturum açmayı temel alan kullanıcı.
CREATE USER Mary;
Microsoft Entra oturum açma bilgilerini temel alan kullanıcı.
CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]
Not
Microsoft Entra sunucu sorumluları (oturum açma bilgileri) şu anda Azure SQL Veritabanı için genel önizleme aşamasındadır.
Not
Oturum açma bilgileri ve dolayısıyla oturum açma bilgilerini temel alan kullanıcılar Microsoft Fabric'teki SQL veritabanında desteklenmez.
Veritabanında kimlik doğrulaması - Veritabanınızı daha taşınabilir hale getirmenize yardımcı olması için önerilir.
SQL Veritabanı'nda her zaman izin verilir. Yalnızca SQL Server'da kapsanan bir veritabanında izin verilir.
Kullanıcı, oturum açma bilgisi olmayan bir Windows kullanıcısı tabanlıdır.
CREATE USER [Contoso\Fritz];
Oturum açma bilgisi olmayan bir Windows grubunu temel alan kullanıcı.
CREATE USER [Contoso\Sales];
Sql Veritabanı veya Azure Synapse Analytics'te microsoft Entra kullanıcılarını temel alan kullanıcı.
CREATE USER [Fritz@contoso.com] FROM EXTERNAL PROVIDER;
Parolalı bağımsız veritabanı kullanıcısı. (Azure Synapse Analytics'te kullanılamaz.)
CREATE USER Mary WITH PASSWORD = '********';
Windows grup oturum açma bilgileri aracılığıyla bağlanan Windows sorumlularını temel alan kullanıcılar
Oturum açma bilgisi olmayan, ancak Bir Windows grubu üyeliği aracılığıyla Veritabanı Altyapısı'na bağlanabilen bir Windows kullanıcısını temel alan kullanıcı.
CREATE USER [Contoso\Fritz];
Oturum açma bilgisi olmayan, ancak farklı bir Windows grubu üyeliği aracılığıyla Veritabanı Altyapısı'na bağlanabilen bir Windows grubunu temel alan kullanıcı.
CREATE USER [Contoso\Fritz];
kimlik doğrulaması yapamayan kullanıcılar - Bu kullanıcılar SQL Server'da veya SQL Veritabanında oturum açamaz.
- Oturum açma bilgisi olmayan kullanıcı. Oturum açılamıyor ancak izinler verilebilir.
CREATE USER CustomApp WITHOUT LOGIN;
- Sertifikayı temel alan kullanıcı. Oturum açılamıyor, ancak izinler verilebilir ve modülleri imzalayabilir.
CREATE USER TestProcess FOR CERTIFICATE CarnationProduction50;
- Asimetrik anahtara dayalı kullanıcı. Oturum açılamıyor, ancak izinler verilebilir ve modülleri imzalayabilir.
CREATE User TestProcess FROM ASYMMETRIC KEY PacificSales09;
Transact-SQL söz dizimi kuralları
Sözdizimi
SQL Server, Azure SQL Veritabanı, Azure SQL Yönetilen Örneği söz dizimi
-- Syntax Users based on logins in master
CREATE USER user_name
[
{ FOR | FROM } LOGIN login_name
]
[ WITH <limited_options_list> [ ,... ] ]
[ ; ]
-- Users that authenticate at the database
CREATE USER
{
windows_principal [ WITH <options_list> [ ,... ] ]
| user_name WITH PASSWORD = 'password' [ , <options_list> [ ,... ]
| Microsoft_Entra_principal FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid']
}
[ ; ]
-- Users based on Windows principals that connect through Windows group logins
CREATE USER
{
windows_principal [ { FOR | FROM } LOGIN windows_principal ]
| user_name { FOR | FROM } LOGIN windows_principal
}
[ WITH <limited_options_list> [ ,... ] ]
[ ; ]
-- Users that cannot authenticate
CREATE USER user_name
{
WITHOUT LOGIN [ WITH <limited_options_list> [ ,... ] ]
| { FOR | FROM } CERTIFICATE cert_name
| { FOR | FROM } ASYMMETRIC KEY asym_key_name
}
[ ; ]
<options_list> ::=
DEFAULT_SCHEMA = schema_name
| DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }
| SID = sid
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ]
<limited_options_list> ::=
DEFAULT_SCHEMA = schema_name ]
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ]
-- SQL Database syntax when connected to a federation member
CREATE USER user_name
[;]
-- Syntax for users based on Microsoft Entra logins for Azure SQL Managed Instance
CREATE USER user_name
[ { FOR | FROM } LOGIN login_name ]
| FROM EXTERNAL PROVIDER
[ WITH <limited_options_list> [ ,... ] ]
[ ; ]
<limited_options_list> ::=
DEFAULT_SCHEMA = schema_name
| DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ]
Azure Synapse Analytics söz dizimi
CREATE USER user_name
[ { { FOR | FROM } { LOGIN login_name }
| WITHOUT LOGIN
]
[ WITH DEFAULT_SCHEMA = schema_name ]
[;]
CREATE USER Microsoft_Entra_principal FROM EXTERNAL PROVIDER
[ WITH DEFAULT_SCHEMA = schema_name ]
[;]
Microsoft Fabric ve Azure SQL Veritabanı'nda SQL veritabanı söz dizimi
CREATE USER
{
Microsoft_Entra_principal FROM EXTERNAL PROVIDER [ WITH <limited_options_list> [ ,... ] ]
| Microsoft_Entra_principal WITH <options_list> [ ,... ]
}
[ ; ]
-- Users that cannot authenticate
CREATE USER user_name
{ WITHOUT LOGIN [ WITH DEFAULT_SCHEMA = schema_name ]
| { FOR | FROM } CERTIFICATE cert_name
| { FOR | FROM } ASYMMETRIC KEY asym_key_name
}
[ ; ]
<limited_options_list> ::=
DEFAULT_SCHEMA = schema_name
| OBJECT_ID = 'objectid'
<options_list> ::=
DEFAULT_SCHEMA = schema_name
| SID = sid
| TYPE = { X | E }
Paralel Veri Ambarı söz dizimi
CREATE USER user_name
[ { { FOR | FROM }
{
LOGIN login_name
}
| WITHOUT LOGIN
]
[ WITH DEFAULT_SCHEMA = schema_name ]
[;]
Bağımsız değişken
user_name
Kullanıcının bu veritabanında tanımlandığı adı belirtir. user_namebir sysname. En fazla 128 karakter uzunluğunda olabilir. Bir Windows sorumlusunu temel alan bir kullanıcı oluştururken, başka bir kullanıcı adı belirtilmediği sürece Windows asıl adı kullanıcı adı olur.
OTURUM AÇMA login_name
Veritabanı kullanıcısının oluşturulduğu oturum açma bilgilerini belirtir.
login_name sunucuda geçerli bir oturum açma bilgisi olmalıdır. Windows sorumlusuna (kullanıcı veya grup), SQL Server kimlik doğrulaması kullanan oturum açma bilgilerine veya Microsoft Entra sorumlusu (kullanıcı, grup veya uygulama) kullanan oturum açma bilgilerine dayalı bir oturum açma işlemi olabilir. Bu SQL Server oturum açma bilgileri veritabanına girdiğinde, oluşturulan veritabanı kullanıcısının adını ve kimliğini alır. Windows sorumlusundan eşlenmiş bir oturum açma bilgisi oluştururken,[
CREATE USER deyimi sql toplu işlemindeki tek deyimse, Azure SQL Veritabanı WITH LOGIN yan tümcesini destekler. CREATE USER deyimi sql toplu işlemindeki tek deyim değilse veya dinamik SQL'de yürütülürse, WITH LOGIN yan tümcesi desteklenmez.
WITH DEFAULT_SCHEMA = schema_name
Bu veritabanı kullanıcısı için nesnelerin adlarını çözümlediğinde sunucu tarafından aranacak ilk şemayı belirtir.
'windows_principal'
Veritabanı kullanıcısının oluşturulduğu Windows sorumlusunu belirtir.
windows_principal bir Windows kullanıcısı veya bir Windows grubu olabilir.
windows_principal oturum açma bilgisi olmasa bile kullanıcı oluşturulur. SQL Server'a bağlanırken, windows_principal oturum açma bilgisi yoksa, Windows sorumlusunun oturum açma bilgisi olan bir Windows grubu üyeliği aracılığıyla Veritabanı Altyapısı'nda kimlik doğrulaması yapması veya bağlantı dizesinin ilk katalog olarak kapsanan veritabanını belirtmesi gerekir. Bir Windows sorumlusundan kullanıcı oluştururken,[
'Microsoft_Entra_principal'
Şunlar için geçerlidir: SQL Server 2022 (16.x) ve üzeri, SQL Veritabanı, SQL Yönetilen Örneği, Azure Synapse Analytics, Microsoft Fabric'teki SQL veritabanı
Veritabanı kullanıcısının oluşturulduğu Microsoft Entra sorumlusunu belirtir. Microsoft_Entra_principal bir Microsoft Entra kullanıcısı, bir Microsoft Entra grubu veya bir Microsoft Entra uygulaması olabilir. (Microsoft Entra kullanıcıları SQL Veritabanında Windows Kimlik Doğrulaması oturum açma bilgilerine sahip olamaz; yalnızca veritabanı kullanıcıları.) Bağlantı dizesi, ilk katalog olarak kapsanan veritabanını belirtmelidir.
Microsoft Entra sorumluları için CREATE USER söz dizimi şunları gerektirir:
Microsoft Entra kullanıcıları için Microsoft Entra nesnesinin UserPrincipalName.
CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;
Microsoft Entra sunucu sorumluları (oturum açma bilgileri), veritabanındaki Microsoft Entra oturum açma bilgilerine eşlenen kullanıcılar oluşturmayı tanıtır
master
. Örneğin,CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com];
2048'den fazla Microsoft Entra güvenlik grubunun üyesi olan Microsoft Entra kullanıcıları ve hizmet sorumluları (uygulamalar), Azure SQL Veritabanı, Azure SQL Yönetilen Örneği veya Azure Synapse'teki veritabanlarında oturum açmak için desteklenmez.
Microsoft Entra grupları ve Microsoft Entra Uygulamaları için Microsoft Entra nesnesinin DisplayName'i. Nurses güvenlik grubuna sahipseniz şunları kullanırsınız:
CREATE USER [Nurses] FROM EXTERNAL PROVIDER;
Daha fazla bilgi için bkz. Microsoft Entra kimlik doğrulamasını kullanarak SQL Veritabanına Bağlanma.
SQL Server'da Microsoft Entra kimlik doğrulaması hakkında daha fazla bilgi için bkz . Öğretici: Azure Arc tarafından etkinleştirilen SQL Server için Microsoft Entra kimlik doğrulamasını ayarlama.
WITH PASSWORD = 'parola'
için geçerlidir: SQL Server 2012 (11.x) ve üzeri, SQL Veritabanı.
Yalnızca kapsanan bir veritabanında kullanılabilir. Oluşturulan kullanıcının parolasını belirtir.
SQL Server 2012 (11.x) sürümünden başlayarak SQL Server ve Azure SQL DB, 32 bit rastgele ve benzersiz tuz ile birlikte sha-512 karması kullandı. Bu yöntem, saldırganların parolaları çözmesini istatistiksel olarak mümkün hale getirdi.
SQL Server 2025 (17.x) Önizlemesi, parola tabanlı anahtar türetme işlevi (PBKDF) olarak da bilinen RFC2898 yinelemeli karma algoritmasını kullanıma sunms. Bu algoritma hala SHA-512 kullanır ancak parolayı birden çok kez karma olarak kullanır (100.000 yineleme), deneme yanılma saldırılarını önemli ölçüde yavaşlatır. Bu değişiklik, gelişen güvenlik tehditlerine yanıt olarak parola korumasını geliştirir ve müşterilerin NIST SP 800-63b yönergelerine uymasına yardımcı olur.
OTURUM AÇMADAN
Kullanıcının mevcut oturum açma bilgileriyle eşlenmemesi gerektiğini belirtir.
SERTIFIKA cert_name
için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, SQL Veritabanı, Microsoft Fabric'teki SQL veritabanı
Veritabanı kullanıcısının oluşturulduğu sertifikayı belirtir.
ASIMETRIK ANAHTAR asym_key_name
için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, SQL Veritabanı, Microsoft Fabric'teki SQL veritabanı
Veritabanı kullanıcısının oluşturulduğu asimetrik anahtarı belirtir.
DEFAULT_LANGUAGE = { NONE | <lcid> | <dil adı> | <dil> }
için geçerlidir: SQL Server 2012 (11.x) ve üzeri, SQL Veritabanı
Yeni kullanıcı için varsayılan dili belirtir. Kullanıcı için varsayılan bir dil belirtilirse ve veritabanının varsayılan dili daha sonra değiştirilirse, kullanıcıların varsayılan dili belirtildiği gibi kalır. Varsayılan dil belirtilmezse, kullanıcının varsayılan dili veritabanının varsayılan dili olur. Kullanıcının varsayılan dili belirtilmezse ve veritabanının varsayılan dili daha sonra değiştirilirse, kullanıcının varsayılan dili veritabanı için yeni varsayılan dile dönüşür.
Önemli
DEFAULT_LANGUAGE yalnızca bağımsız bir veritabanı kullanıcısı için kullanılır.
SID = sid
için geçerlidir: SQL Server 2012 (11.x) ve üzeri ve Microsoft Fabric'teki SQL veritabanı.
SQL Server 2012 (11.x) ve sonraki sürümlerinde, yalnızca kapsanan veritabanında parolaları (SQL Server kimlik doğrulaması) olan kullanıcılar için geçerlidir. Yeni veritabanı kullanıcısının SID'sini belirtir. Bu seçenek belirlenmezse, SQL Server otomatik olarak bir SID atar. Aynı kimliğe (SID) sahip birden çok veritabanında kullanıcı oluşturmak için SID parametresini kullanın. Bu, Always On yük devretmesine hazırlanmak için birden çok veritabanında kullanıcı oluştururken kullanışlıdır. Kullanıcının SID'sini belirlemek için sorgu sys.database_principals.
Microsoft Fabric'teki SQL veritabanında, sid
belirtilen Microsoft Entra sorumlusunun geçerli bir kimliği olmalıdır. Sorumlu bir kullanıcı veya grupsa, kimlik kullanıcının/grubun Microsoft Entra nesne kimliği olmalıdır. Microsoft Entra sorumlusu bir hizmet sorumlusuysa (uygulama veya yönetilen kimlik), kimlik bir uygulama kimliği (veya istemci kimliği) olmalıdır. Belirtilen kimlik binary(16)
bir değer olmalıdır. Veritabanı Altyapısı, Microsoft Entra'da belirtilen kimliği doğrulamaz.
SID
bağımsız değişkeni TYPE
ile birlikte kullanılmalıdır.
TÜR = [ E | X ]
Şunlar için geçerlidir: Microsoft Fabric ve Azure SQL Veritabanı'ndaki SQL veritabanı.
Microsoft Entra sorumlusunun türünü belirtir.
E
, sorumlunun bir kullanıcı veya hizmet sorumlusu (uygulama veya yönetilen kimlik) olduğunu gösterir.
X
, sorumlunun bir grup olduğunu gösterir.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | KAPALI ]
için geçerlidir: SQL Server 2016 (13.x) ve üzeri, SQL Veritabanı.
Toplu kopyalama işlemlerinde sunucuda şifreleme meta veri denetimlerini gizler. Bu, kullanıcının verilerin şifresini çözmeden şifrelenmiş verileri tablolar veya veritabanları arasında toplu olarak kopyalamasını sağlar. Varsayılan değer KAPALI'dır.
Uyarı
Bu seçeneğin yanlış kullanılması veri bozulmasına neden olabilir. Daha fazla bilgi için bkz. Always Encrypted tarafından Korunan Hassas Verileri Geçirme.
DıŞ SAĞLAYıCıDAN
Şunlar için geçerlidir: SQL Server 2022 (16.x) ve üzeri, SQL Veritabanı, Azure SQL Yönetilen Örneği, Microsoft Fabric'teki SQL veritabanı
Sorumlunun Microsoft Entra kimlik doğrulaması için olduğunu belirtir. SQL Server, Microsoft Entra'da sağlanan asıl adı otomatik olarak doğrular.
SQL Veritabanı ve Azure SQL Yönetilen Örneği'nde,
Microsoft Fabric'teki SQL veritabanında, FROM EXTERNAL PROVIDER
veren bir sorumlu Microsoft Entra'da hizmet sorumlusuysa CREATE USER
izin verilmez. Hizmet sorumluları, Microsoft Entra sorumluları için kullanıcı oluşturmak için TYPE
ve SID
bağımsız değişkenlerini kullanmalıdır.
WITH OBJECT_ID = 'objectid'
Şunlar için geçerlidir: SQL Server 2025 (17.x) Önizleme ve üzeri, SQL Veritabanı, Azure SQL Yönetilen Örneği, Microsoft Fabric'teki SQL veritabanı
Microsoft Entra Nesne Kimliğini belirtir.
OBJECT_ID
belirtilirse, user_name bir sonek eklenmiş olarak özgün asıl görünen adından oluşturulmuş kullanıcı tanımlı bir diğer ad olabilir. user_name sys.database_principals
görünümünde benzersiz bir ad olmalıdır ve diğer tüm sysname
sınırlamalarına uymalıdır.
WITH OBJECT_ID
seçeneğini kullanma hakkında daha fazla bilgi için bkz. Microsoft Entra oturum açma bilgileri vegörünen adları olmayan kullanıcılar.
Not
SQL Server 2025 (17.x) Preview sürümünden WITH OBJECT_ID
başlayarak, microsoft Entra oturum açma bilgileri ve benzersiz görünen adlara sahip kullanıcılar için bu seçenek desteklenir.
Hizmet sorumlusu görünen adı yinelenen değilse, varsayılan CREATE LOGIN
veya CREATE USER
deyimi kullanılmalıdır.
WITH OBJECT_ID
uzantısı, nonunique hizmet sorumlularıyla kullanılmak üzere uygulanan bir sorun giderme onarım öğesidir. Benzersiz bir hizmet sorumlusuyla kullanılması önerilmez. Sonek eklemeden hizmet sorumlusu için WITH OBJECT_ID
uzantısını kullanmak başarıyla çalışır, ancak oturum açma veya kullanıcının hangi hizmet sorumlusu için oluşturulduğu belirgin olmaz. Hizmet sorumlusunu benzersiz bir şekilde tanımlamak için sonek kullanarak bir diğer ad oluşturmanız önerilir.
Açıklamalar
FOR LOGIN
atlanırsa, yeni veritabanı kullanıcısı aynı adla SQL Server oturum açma bilgilerine eşlenir.
Varsayılan şema, bu veritabanı kullanıcısı için nesnelerin adlarını çözümlediğinde sunucu tarafından aranacak ilk şema olacaktır. Aksi belirtilmedikçe, varsayılan şema bu veritabanı kullanıcısı tarafından oluşturulan nesnelerin sahibi olur.
Kullanıcının varsayılan şeması varsa, bu varsayılan şema kullanılır. Kullanıcının varsayılan şeması yoksa, ancak kullanıcı varsayılan şeması olan bir grubun üyesiyse, grubun varsayılan şeması kullanılır. Kullanıcının varsayılan şeması yoksa ve birden fazla grubun üyesiyse, kullanıcının varsayılan şeması en düşük principal_id ve açıkça ayarlanmış bir varsayılan şema olan Windows grubunun şeması olur. (Tercih edilen şema olarak kullanılabilir varsayılan şemalardan birini açıkça seçmek mümkün değildir.) Bir kullanıcı için varsayılan şema belirlenemezse dbo şeması kullanılır.
DEFAULT_SCHEMA işaret eden şema oluşturulmadan önce ayarlanabilir.
DEFAULT_SCHEMA, bir sertifikaya veya asimetrik anahtara eşlenmiş bir kullanıcı oluştururken belirtilemiyor.
Kullanıcı sysadmin sabit sunucu rolünün üyesiyse DEFAULT_SCHEMA değeri yoksayılır. Sysadmin sabit sunucu rolünün tüm üyeleri varsayılan dbo
şemasına sahiptir.
WITHOUT LOGIN yan tümcesi, SQL Server oturum açma bilgileriyle eşlenmeyen bir kullanıcı oluşturur. Diğer veritabanlarına konuk olarak bağlanabilir. İzinler oturum açma olmadan bu kullanıcıya atanabilir ve güvenlik bağlamı oturum açma olmayan bir kullanıcı olarak değiştirildiğinde, özgün kullanıcılar oturum açma olmadan kullanıcının izinlerini alır. Örnek D. Oturum açmaolmadan kullanıcı oluşturma ve kullanma bölümüne bakın.
Yalnızca Windows sorumlularıyla eşlenen kullanıcılar ters eğik çizgi karakterini (\) içerebilir.
CREATE USER, konuk kullanıcı zaten her veritabanında bulunduğundan konuk kullanıcı oluşturmak için kullanılamaz. Konuk kullanıcıya, gösterildiği gibi BAĞLAN izni vererek etkinleştirebilirsiniz:
GRANT CONNECT TO guest;
GO
Veritabanı kullanıcıları hakkındaki bilgiler sys.database_principals katalog görünümünde görünür.
Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği'nde sunucu düzeyinde Microsoft Entra oturum açma bilgileri oluşturmak için söz dizimi uzantısı FROM EXTERNAL PROVIDER
kullanın. Microsoft Entra oturum açma bilgileri, veritabanı düzeyindeki Microsoft Entra sorumlularının sunucu düzeyinde Microsoft Entra oturum açma bilgileriyle eşlenmesine izin verir. Microsoft Entra oturum açma bilgisinden bir Microsoft Entra kullanıcısı oluşturmak için aşağıdaki söz dizimini kullanın:
CREATE USER [Microsoft_Entra_principal] FROM LOGIN [Microsoft Entra login];
Kullanıcıyı Azure SQL veritabanında oluştururken, login_name mevcut bir Microsoft Entra oturum açma bilgilerine karşılık gelmeli, aksi takdirde FROM EXTERNAL PROVIDER yan tümcesi kullanıldığında yalnızca master
veritabanında oturum açma bilgisi olmayan bir Microsoft Entra kullanıcısı oluşturulur. Örneğin, bu komut kapsanan bir kullanıcı oluşturur:
CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
Söz Dizimi Özeti
Aşağıdaki listede, oturum açma bilgilerine göre kullanıcılar için olası söz dizimi gösterilmektedir. Varsayılan şema seçenekleri listelenmez.
CREATE USER [Domain1\WindowsUserBarry]
CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUserBarry
CREATE USER [Domain1\WindowsUserBarry] FROM LOGIN Domain1\WindowsUserBarry
CREATE USER [Domain1\WindowsGroupManagers]
CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
CREATE USER [Domain1\WindowsGroupManagers] FROM LOGIN [Domain1\WindowsGroupManagers]
CREATE USER SQLAUTHLOGIN
CREATE USER SQLAUTHLOGIN FOR LOGIN SQLAUTHLOGIN
CREATE USER SQLAUTHLOGIN FROM LOGIN SQLAUTHLOGIN
Veritabanında kimlik doğrulaması kullanıcılar
Aşağıdaki listede, yalnızca kapsanan bir veritabanında kullanılabilen kullanıcılar için olası söz dizimi gösterilmektedir. Oluşturulan kullanıcılar, ana veritabanındaki oturum açma bilgileriyle ilişkilendirilmeyecektir. Varsayılan şema ve dil seçenekleri listelenmez.
Önemli
Bu söz dizimi kullanıcılara veritabanına erişim verir ve ayrıca Veritabanı Altyapısı'na yeni erişim verir.
CREATE USER [Domain1\WindowsUserBarry]
CREATE USER [Domain1\WindowsGroupManagers]
CREATE USER Barry WITH PASSWORD = 'sdjklalie8rew8337!$d'
master
sistem veritabanında oturum açmadan Windows sorumlularını temel alan kullanıcılar
Aşağıdaki listede, Bir Windows grubu aracılığıyla Veritabanı Altyapısı'na erişimi olan ancak master
sistem veritabanında oturum açma izni olmayan kullanıcılar için olası söz dizimi gösterilmektedir. Bu söz dizimi tüm veritabanı türlerinde kullanılabilir. Varsayılan şema ve dil seçenekleri listelenmez.
Bu söz dizimi, master
oturum açma bilgilerini temel alan kullanıcılara benzer, ancak bu kullanıcı kategorisinin master
içinde oturum açma bilgisi yoktur. Kullanıcının Windows grubu oturum açma bilgileri aracılığıyla Veritabanı Altyapısı'na erişimi olmalıdır.
Bu söz dizimi, Windows sorumlularını temel alan kapsanan veritabanı kullanıcılarına benzer, ancak bu kullanıcı kategorisi Veritabanı Altyapısı'na yeni erişim elde etmez.
CREATE USER [Domain1\WindowsUserBarry]
CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUserBarry
CREATE USER [Domain1\WindowsUserBarry] FROM LOGIN Domain1\WindowsUserBarry
CREATE USER [Domain1\WindowsGroupManagers]
CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
CREATE USER [Domain1\WindowsGroupManagers] FROM LOGIN [Domain1\WindowsGroupManagers]
kimlik doğrulaması yapamayan kullanıcıları
Aşağıdaki listede, SQL Server'da oturum açabilen kullanıcılar için olası söz dizimi gösterilmektedir.
CREATE USER RIGHTSHOLDER WITHOUT LOGIN
CREATE USER CERTUSER FOR CERTIFICATE SpecialCert
CREATE USER CERTUSER FROM CERTIFICATE SpecialCert
CREATE USER KEYUSER FOR ASYMMETRIC KEY SecureKey
CREATE USER KEYUSER FROM ASYMMETRIC KEY SecureKey
Güvenlik
Kullanıcı oluşturma, veritabanına erişim izni verir, ancak veritabanındaki nesnelere otomatik olarak erişim vermez. Kullanıcı oluşturduktan sonra, veritabanı nesnelerine erişim izni olan veritabanı rollerine kullanıcı eklemek veya kullanıcıya nesne izinleri vermek yaygın eylemlerdir. İzin sistemi tasarlama hakkında bilgi için bkz. Veritabanı Altyapısı İzinlerini Kullanmaya Başlama.
Kapsanan Veritabanları için Özel Dikkat Edilmesi Gerekenler
Kapsanan veritabanına bağlanırken, kullanıcının master
veritabanında oturum açma bilgisi yoksa, bağlantı dizesi ilk katalog olarak kapsanan veritabanı adını içermelidir. İlk katalog parametresi, parola içeren bir veritabanı kullanıcısı için her zaman gereklidir.
İçerilen bir veritabanında, kullanıcı oluşturmak veritabanını Veritabanı Altyapısı örneğinden ayırmaya yardımcı olur, böylece veritabanı başka bir SQL Server örneğine kolayca taşınabilir. Daha fazla bilgi için bkz. Kapsanan Veritabanları ve Bağımsız Veritabanı Kullanıcıları - Veritabanınızı TaşınabilirYapma. Sql Server kimlik doğrulaması oturum açma bilgilerini temel alan bir kullanıcıdan veritabanı kullanıcısını parolayla kapsanan veritabanı kullanıcısıyla değiştirmek için bkz. sp_migrate_user_to_contained (Transact-SQL).
Kapsanan bir veritabanında kullanıcıların master
veritabanında oturum açmaları gerekmez. Veritabanı Altyapısı yöneticileri, veritabanı altyapısı düzeyi yerine, kapsanan bir veritabanına erişimin veritabanı düzeyinde verilebileceğini anlamalıdır. Daha fazla bilgi için bkz. Bağımsız Veritabanları ile En İyi Güvenlik Yöntemleri.
Azure SQL Veritabanı'nda kapsanan veritabanı kullanıcılarını kullanırken, sunucu düzeyinde güvenlik duvarı kuralı yerine veritabanı düzeyinde bir güvenlik duvarı kuralı kullanarak erişimi yapılandırın. Daha fazla bilgi için bkz. sp_set_database_firewall_rule (Azure SQL Veritabanı).
SQL Server 2022 (16.x), SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analytics'in içerdiği veritabanı kullanıcıları için SSMS çok faktörlü kimlik doğrulamasını destekler. Daha fazla bilgi için bkz. Microsoft Entra çok faktörlü kimlik doğrulamasıkullanma.
İzinler
Veritabanında ALTER ANY USER izni gerektirir.
SQL Server 2022 ve üzeri için izinler
Veritabanında CREATE USER izni gerektirir.
Örnekler
A. SQL Server oturum açma bilgilerini temel alan veritabanı kullanıcısı oluşturma
Aşağıdaki örnek önce AbolrousHazem
adlı bir SQL Server oturumu oluşturur ve ardından AbolrousHazem
'de ilgili veritabanı kullanıcı AdventureWorks2022
oluşturur.
CREATE LOGIN AbolrousHazem
WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
Kullanıcı veritabanına geçin. Örneğin, SQL Server'da USE AdventureWorks2022
deyimini kullanın. Azure Synapse Analytics ve Analytics Platform Sistemi'nde (PDW), kullanıcı veritabanına yeni bir bağlantı oluşturmanız gerekir.
CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;
GO
B. Varsayılan şema ile veritabanı kullanıcısı oluşturma
Aşağıdaki örnek önce parolayla WanidaBenshoof
adlı bir sunucu oturumu oluşturur ve ardından Wanida
varsayılan şema Marketing
ile ilgili bir veritabanı kullanıcısı oluşturur.
CREATE LOGIN WanidaBenshoof
WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';
USE AdventureWorks2022;
CREATE USER Wanida FOR LOGIN WanidaBenshoof
WITH DEFAULT_SCHEMA = Marketing;
GO
C. Sertifikadan veritabanı kullanıcısı oluşturma
Aşağıdaki örnek, JinghaoLiu
sertifikadan bir veritabanı kullanıcısı CarnationProduction50
oluşturur.
için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri.
USE AdventureWorks2022;
CREATE CERTIFICATE CarnationProduction50
WITH SUBJECT = 'Carnation Production Facility Supervisors',
EXPIRY_DATE = '11/11/2011';
GO
CREATE USER JinghaoLiu FOR CERTIFICATE CarnationProduction50;
GO
D. Oturum açma olmadan kullanıcı oluşturma ve kullanma
Aşağıdaki örnek, SQL Server oturum açma bilgileriyle eşleşmeyen bir veritabanı kullanıcısı CustomApp
oluşturur. Örnek daha sonra bir kullanıcıya adventure-works\tengiz0
kullanıcının kimliğine bürünmek için CustomApp
izin verir.
USE AdventureWorks2022;
CREATE USER CustomApp WITHOUT LOGIN ;
GRANT IMPERSONATE ON USER::CustomApp TO [adventure-works\tengiz0] ;
GO
CustomApp
kimlik bilgilerini kullanmak için kullanıcı adventure-works\tengiz0
aşağıdaki deyimi yürütür.
EXECUTE AS USER = 'CustomApp' ;
GO
adventure-works\tengiz0
kimlik bilgilerine geri dönmek için kullanıcı aşağıdaki deyimi yürütür.
REVERT ;
GO
E. Parolayla kapsanan veritabanı kullanıcısı oluşturma
Aşağıdaki örnek, parola içeren bir veritabanı kullanıcısı oluşturur. Bu örnek yalnızca kapsanan bir veritabanında yürütülebilir.
için geçerlidir: SQL Server 2012 (11.x) ve üzeri. bu örnek, DEFAULT_LANGUAGE kaldırılırsa SQL Veritabanı'nda çalışır.
USE AdventureWorks2022;
GO
CREATE USER Carlo
WITH PASSWORD='RN92piTCh%$!~3K9844 Bl*'
, DEFAULT_LANGUAGE=[Brazilian]
, DEFAULT_SCHEMA=[dbo]
GO
F. Etki alanı oturum açma bilgileri için bağımsız veritabanı kullanıcısı oluşturma
Aşağıdaki örnek Contoso adlı bir etki alanında Fritz adlı oturum açma bilgileri için bağımsız bir veritabanı kullanıcısı oluşturur. Bu örnek yalnızca kapsanan bir veritabanında yürütülebilir.
için geçerlidir: SQL Server 2012 (11.x) ve üzeri.
USE AdventureWorks2022;
GO
CREATE USER [Contoso\Fritz] ;
GO
G. Belirli bir SID ile kapsanan veritabanı kullanıcısı oluşturma
Aşağıdaki örnek CarmenW adlı kimliği doğrulanmış bir SQL Server veritabanı kullanıcısı oluşturur. Bu örnek yalnızca kapsanan bir veritabanında yürütülebilir.
için geçerlidir: SQL Server 2012 (11.x) ve üzeri.
USE AdventureWorks2022;
GO
CREATE USER CarmenW WITH PASSWORD = 'a8ea v*(Rd##+'
, SID = 0x01050000000000090300000063FF0451A9E7664BA705B10E37DDC4B7;
H. Şifrelenmiş verileri kopyalamak için kullanıcı oluşturma
Aşağıdaki örnek, Always Encrypted özelliği tarafından korunan verileri şifrelenmiş sütunlar içeren bir tablo kümesinden şifrelenmiş sütunlar içeren başka bir tablo kümesine (aynı veya farklı bir veritabanında) kopyalayabilen bir kullanıcı oluşturur. Daha fazla bilgi için bkz. Always Encrypted tarafından Korunan Hassas Verileri Geçirme.
için geçerlidir: SQL Server 2016 (13.x) ve üzeri, SQL Veritabanı.
CREATE USER [Chin]
WITH
DEFAULT_SCHEMA = dbo
, ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = ON ;
Ben. Azure SQL'de Microsoft Entra oturumundan Microsoft Entra kullanıcısı oluşturma
Microsoft Entra oturum açma bilgilerine sahip bir Microsoft Entra kullanıcısı oluşturmak için aşağıdaki söz dizimini kullanın.
Azure veya SQL Yönetilen Örneği'nde bob@contoso.com
bob@contoso.com
bir Microsoft Entra kullanıcısı oluşturur. Bu oturum açma CREATE LOGIN örneğinde oluşturulmuştur.
CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com];
GO
Önemli
Microsoft Entra oturumundan USER oluştururken, user_nameLOGIN'den aynı login_name olarak belirtin.
Grup olan bir Microsoft Entra oturumundan grup olarak Bir Microsoft Entra kullanıcısı oluşturma desteklenir.
CREATE USER [MS Entra group] FROM LOGIN [MS Entra group];
GO
Ayrıca, grup olan bir Microsoft Entra oturumundan bir Microsoft Entra kullanıcısı da oluşturabilirsiniz.
CREATE USER [bob@contoso.com] FROM LOGIN [MS Entra group];
GO
J. Microsoft Entra sorumlusundan bağımsız veritabanı kullanıcısı oluşturma
Aşağıdaki söz dizimi, bob@contoso.com
'de ilişkili oturum açma bilgisi olmayan bir veritabanında master
bir Microsoft Entra kullanıcısı oluşturur. Veritabanı Altyapısı, belirtilen kullanıcının Microsoft Entra'da mevcut olduğunu doğrular.
CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
GO
K. Doğrulama olmadan Microsoft Entra sorumlusundan bağımsız veritabanı kullanıcısı oluşturma
Şunlar için geçerlidir: Microsoft Fabric ve Azure SQL Veritabanı'nda SQL veritabanı
Bu bölümdeki örnekler, Microsoft Entra'da asıl adları doğrulamadan Microsoft Entra sorumluları için veritabanı kullanıcıları oluşturur.
Aşağıdaki T-SQL örneği, Microsoft Entra kullanıcısı için bob@contoso.com
adlı bir veritabanı kullanıcısı oluşturur.
<unique identifier sid>
yerine yeni kullanıcının SID değerini Microsoft Entra kullanıcısının nesne kimliğiyle değiştirin.
DECLARE @principal_name SYSNAME = 'bob@contoso.com';
DECLARE @objectId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- user's object ID in Microsoft Entra
-- Convert the guid to the right type
DECLARE @castObjectId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @objectId), 1);
-- Construct command: CREATE USER [@principal_name] WITH SID = @castObjectId, TYPE = E;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = E;'
EXEC (@cmd);
Aşağıdaki örnek, Microsoft Entra hizmet sorumlusu için HRApp
adlı bir veritabanı kullanıcısı oluşturur.
<unique identifier sid>
yerine yeni kullanıcının SID değerini Microsoft Entra'daki hizmet sorumlusunun istemci kimliğiyle değiştirin.
DECLARE @principal_name SYSNAME = 'HRApp';
DECLARE @clientId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- principal's client ID in Microsoft Entra
-- Convert the guid to the right type
DECLARE @castClientId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @clientId), 1);
-- Construct command: CREATE USER [@principal_name] WITH SID = @castClientId, TYPE = E;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castClientId + ', TYPE = E;'
EXEC (@cmd);
Aşağıdaki örnek, Microsoft Entra grubu için HR
adlı bir veritabanı kullanıcısı oluşturur.
<unique identifier sid>
yeni kullanıcının SID değerini grubun nesne kimliğiyle değiştirin.
DECLARE @group_name SYSNAME = 'HR';
DECLARE @objectId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- principal's object ID in Microsoft Entra
-- Convert the guid to the right type
DECLARE @castObjectId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @objectId), 1);
-- Construct command: CREATE USER [@groupName] WITH SID = @castObjectId, TYPE = X;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = X;'
EXEC (@cmd);
Sonraki adımlar
Kullanıcı oluşturulduktan sonra, ALTER ROLE deyimini kullanarak kullanıcıyı bir veritabanı rolüne eklemeyi göz önünde bulundurun.
Tablolara erişebilmeleri için role GRANT Nesne İzinleri
İlgili içerik
- veritabanı kullanıcısı oluşturma
- sys.database_principals (Transact-SQL)
- ALTER USER (Transact-SQL)
- DROP USER (Transact-SQL)
- GİRİŞ OLUŞTUR (Transact-SQL)
- EVENTDATA (Transact-SQL)
- Kapsanan Veritabanları
- Microsoft Entra kimlik doğrulama kullanarak SQL Veritabanına Bağlanma
- Veritabanı Altyapısı İzinlerini Kullanmaya Başlama