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.
Veritabanı kullanıcısını yeniden adlandırır veya varsayılan şemasını değiştirir.
Transact-SQL söz dizimi kuralları
Note
Microsoft Entra ID daha önce Azure Active Directory (Azure AD) olarak biliniyordu.
Ürün seçin
Aşağıdaki satırda, ilgilendiğiniz ürün adını seçin ve yalnızca bu ürünün bilgileri görüntülenir.
* SQL Server *
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
SQL Server
Syntax
-- Syntax for SQL Server
ALTER USER user_name
WITH <set_item> [ ,...n ]
[;]
<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
Arguments
user_name
Kullanıcının bu veritabanında tanımlandığı adı belirtir.
LOGIN = login_name
Kullanıcının Güvenlik Tanımlayıcısını (SID) oturum açmanın SID'sine uyacak şekilde değiştirerek kullanıcıyı başka bir oturum açmayla yeniden eşler.
NAME = new_user_name
Bu kullanıcının yeni adını belirtir. new_user_name geçerli veritabanında zaten mevcut olmamalıdır.
DEFAULT_SCHEMA = { schema_name | NULL }
Bu kullanıcı için nesnelerin adlarını çözümlediğinde sunucu tarafından aranacak ilk şemayı belirtir. Varsayılan şemayı NULL olarak ayarlamak, windows grubundan varsayılan şemayı kaldırır. NULL seçeneği bir Windows kullanıcısı ile kullanılamaz.
PASSWORD = 'parola'
için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler, Azure SQL Veritabanı.
Değiştirilen kullanıcının parolasını belirtir. Parolalar büyük/küçük harfe duyarlıdır.
Note
Bu seçenek yalnızca bağımsız kullanıcılar için kullanılabilir. Daha fazla bilgi için bkz. Kapsanan Veritabanları ve sp_migrate_user_to_contained (Transact-SQL).
OLD_PASSWORD ='oldpassword'
için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler, Azure SQL Veritabanı.
'parola' ile değiştirilecek geçerli kullanıcı parolası. Parolalar büyük/küçük harfe duyarlıdır. OLD_PASSWORD, ALTER ANY USER izniniz olmadığı sürece parolayı değiştirmek için gereklidir. OLD_PASSWORD zorunlu KIMLIĞE BÜRÜNME izni olan kullanıcıların parolayı değiştirmesini engeller.
Note
Bu seçenek yalnızca bağımsız kullanıcılar için kullanılabilir.
DEFAULT_LANGUAGE ={ NONE | <lcid> | <dil adı> | <dil diğer adı> }
için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler.
Kullanıcıya atanacak varsayılan dili belirtir. Bu seçenek NONE olarak ayarlanırsa, varsayılan dil veritabanının geçerli varsayılan diline ayarlanır. Veritabanının varsayılan dili daha sonra değiştirilirse, kullanıcının varsayılan dili değişmeden kalır. DEFAULT_LANGUAGE yerel kimlik (lcid), dilin adı veya dil diğer adı olabilir.
Note
Bu seçenek yalnızca kapsanan bir veritabanında ve yalnızca kapsanan kullanıcılar için belirtilebilir.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | KAPALI ]
için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler, Azure 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.
Warning
Bu seçeneğin yanlış kullanılması veri bozulmasına neden olabilir. Daha fazla bilgi için bkz. Always Encrypted kullanarak şifrelenmiş verileri sütunlara toplu yükleme.
Remarks
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. Bir kullanıcı için varsayılan şema belirlenemiyorsa, dbo şeması kullanılır.
DEFAULT_SCHEMA şu anda veritabanında gerçekleşmeyen bir şemaya ayarlanabilir. Bu nedenle, şema oluşturulmadan önce kullanıcıya bir DEFAULT_SCHEMA atayabilirsiniz.
DEFAULT_SCHEMA, bir sertifikaya veya asimetrik anahtara eşlenen bir kullanıcı için belirtilemiyor.
Important
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.
Bir Windows oturum açma veya grubuyla eşlenen bir kullanıcının adını yalnızca yeni kullanıcı adının SID'sinin veritabanında kayıtlı SID ile eşleşmesi halinde değiştirebilirsiniz. Bu denetim, veritabanında Windows oturum açma bilgilerinin yanıltılmasını önlemeye yardımcı olur.
WITH LOGIN yan tümcesi, bir kullanıcının farklı bir oturum açma bilgilerine yeniden eşlenmeye olanak tanır. Oturum açma bilgisi olmayan kullanıcılar, sertifikayla eşlenen kullanıcılar veya asimetrik anahtarla eşlenen kullanıcılar bu yan tümceyle yeniden eşlenemez. Yalnızca SQL kullanıcıları ve Windows kullanıcıları (veya grupları) yeniden eşlenebilir.
WITH LOGIN yan tümcesi, Windows hesabını SQL Server oturum açma bilgilerine değiştirme gibi kullanıcı türünü değiştirmek için kullanılamaz.
Bir veritabanını başka bir sunucudan geri yüklediğinizde ve veritabanı kullanıcısını SQL Server oturum açma bilgilerine eşlediğinizde eşleşmeyen sid oluşabilir. Veritabanındaki kullanıcı SID'sini sunucudan oturum açma SID'siyle değiştirerek bu durumu düzeltmek için WITH LOGIN yan tümcesini kullanabilirsiniz.
Aşağıdaki koşullar doğruysa, kullanıcının adı otomatik olarak oturum açma adı olarak yeniden adlandırılır.
Kullanıcı bir Windows kullanıcısıdır.
Ad bir Windows adıdır (ters eğik çizgi içerir).
Yeni ad belirtilmedi.
Geçerli ad, oturum açma adından farklıdır.
Aksi takdirde, çağıran ek olarak NAME yan tümcesini çağırmadığı sürece kullanıcı yeniden adlandırılamaz.
SQL Server oturum açma bilgilerine, sertifikaya veya asimetrik anahtara eşlenen kullanıcının adı ters eğik çizgi karakterini (\) içeremez.
Note
Şemalar veritabanı kullanıcılarına eşdeğer değildir. Veritabanı kullanıcıları ile şemalar arasındaki farkları belirlemek için Sistem kataloğu görünümlerini kullanın.
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. Bu güvenlik geliştirmesi, SQL Kimlik Doğrulaması oturum açma işlemleri için oturum açma süresini biraz artırabilen daha güçlü bir karma algoritması kullanır. Bağlantı havuzu olan ortamlarda etki genellikle daha düşüktür, ancak havuza alınmamış veya oturum açma gecikmesinin yakından izlendiği senaryolarda daha belirgin olabilir.
Security
Note
ALTER ANY USER izni olan bir kullanıcı, herhangi bir kullanıcının varsayılan şemasını değiştirebilir. Şeması değiştirilmiş bir kullanıcı, farkında olmadan yanlış tablodan veri seçebilir veya yanlış şemadan kod yürütebilir.
Permissions
Kullanıcının adını değiştirmek için ALTER ANY USER izni gerekir.
Kullanıcının hedef oturum açma bilgilerini değiştirmek için veritabanında CONTROL izni gerekir.
Veritabanında CONTROL iznine sahip bir kullanıcının kullanıcı adını değiştirmek için veritabanında CONTROL izni gerekir.
Varsayılan şemayı veya dili değiştirmek için kullanıcı üzerinde ALTER izni gerekir. Kullanıcılar kendi varsayılan şemalarını veya dillerini değiştirebilir.
Examples
Tüm örnekler bir kullanıcı veritabanında yürütülür.
A. Veritabanı kullanıcısının adını değiştirme
Aşağıdaki örnek, veritabanı kullanıcı Mary5 adını Mary51olarak değiştirir.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Kullanıcının varsayılan şemasını değiştirme
Aşağıdaki örnek, kullanıcı Mary51 varsayılan şemasını Purchasingolarak değiştirir.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
C. Aynı anda birkaç seçeneği değiştirme
için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler.
Aşağıdaki örnek, tek bir deyimde bulunan bir veritabanı kullanıcısı için çeşitli seçenekleri değiştirir. ve <new strong password here> değerlerini kendi değerlerinizle değiştirin<old strong password here>.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>'
, DEFAULT_LANGUAGE= French ;
GO
D. Eşleşmeyen SID'leri düzeltme
Aşağıdaki örnek, veritabanındaki kullanıcı SID'sini SQL Server kimliği doğrulanmış oturum açma için sunucudaki SID ile eşleşecek şekilde düzeltmektedir.
ALTER USER Mai
WITH LOGIN = Mai;
GO
İlgili içerik
- CREATE USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Kapsayıcı Veritabanları
- sp_migrate_user_to_contained (Transact-SQL)
* Azure SQL Veritabanı ve Microsoft Fabric *
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
Azure SQL Veritabanı ve Microsoft Fabric
Syntax
Azure SQL Veritabanı söz dizimi
-- Syntax for Azure SQL Database
ALTER USER user_name
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = schema_name
| LOGIN = login_name
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
[;]
-- Azure SQL Database Update Syntax
ALTER USER user_name
WITH <set_item> [ ,...n ]
[;]
<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
-- SQL Database syntax when connected to a federation member
ALTER USER user_name
WITH <set_item> [ ,... n ]
[;]
<set_item> ::=
NAME = new_user_name
Microsoft Fabric Preview'da SQL veritabanı söz dizimi
ALTER USER
{
Microsoft_Entra_principal FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid']
}
[ ; ]
-- Users that cannot authenticate
ALTER USER user_name
{
{ FOR | FROM } CERTIFICATE cert_name
| { FOR | FROM } ASYMMETRIC KEY asym_key_name
}
[ ; ]
<options_list> ::=
DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }
-- SQL Database syntax when connected to a federation member
ALTER USER user_name
[;]
Microsoft Fabric Warehouse söz dizimi
-- Syntax for Fabric Data Warehouse
ALTER USER user_name
WITH <set_item> [ ,...n ]
<set_item> ::=
| DEFAULT_SCHEMA = schema_name
[;]
Arguments
user_name
Kullanıcının bu veritabanında tanımlandığı adı belirtir.
LOGIN = login_name
Kullanıcının Güvenlik Tanımlayıcısını (SID) oturum açmanın SID'sine uyacak şekilde değiştirerek kullanıcıyı başka bir oturum açmayla yeniden eşler.
ALTER USER deyimi bir SQL toplu işlemindeki tek deyimse, Azure SQL Veritabanı WITH LOGIN yan tümcesini destekler. ALTER 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.
NAME = new_user_name
Bu kullanıcının yeni adını belirtir. new_user_name geçerli veritabanında zaten mevcut olmamalıdır.
DEFAULT_SCHEMA = { schema_name | NULL }
Bu kullanıcı için nesnelerin adlarını çözümlediğinde sunucu tarafından aranacak ilk şemayı belirtir.
Varsayılan şemayı NULL olarak ayarlamak, Microsoft Entra Id grubu için oluşturulan bir kullanıcıdan varsayılan şemayı kaldırır. NULL seçeneği başka bir kullanıcı türüyle kullanılamaz.
PASSWORD = 'parola'
için geçerlidir: Azure SQL Veritabanı.
Değiştirilen kullanıcının parolasını belirtir. Parolalar büyük/küçük harfe duyarlıdır.
Note
Bu seçenek yalnızca bağımsız kullanıcılar için kullanılabilir. Daha fazla bilgi için bkz. Kapsanan Veritabanları ve sp_migrate_user_to_contained (Transact-SQL).
OLD_PASSWORD ='oldpassword'
için geçerlidir: Azure SQL Veritabanı.
'parola' ile değiştirilecek geçerli kullanıcı parolası. Parolalar büyük/küçük harfe duyarlıdır. OLD_PASSWORD, ALTER ANY USER izniniz olmadığı sürece parolayı değiştirmek için gereklidir. OLD_PASSWORD zorunlu KIMLIĞE BÜRÜNME izni olan kullanıcıların parolayı değiştirmesini engeller.
Note
Bu seçenek yalnızca bağımsız kullanıcılar için kullanılabilir.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | KAPALI ]
için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler, Azure 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.
Warning
Bu seçeneğin yanlış kullanılması veri bozulmasına neden olabilir. Daha fazla bilgi için bkz. Always Encrypted kullanarak şifrelenmiş verileri sütunlara toplu yükleme.
Remarks
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 grubun şeması olur. Bir kullanıcı için varsayılan şema belirlenemiyorsa, dbo şeması kullanılır.
DEFAULT_SCHEMA şu anda veritabanında gerçekleşmeyen bir şemaya ayarlanabilir. Bu nedenle, şema oluşturulmadan önce kullanıcıya bir DEFAULT_SCHEMA atayabilirsiniz.
DEFAULT_SCHEMA, bir sertifikaya veya asimetrik anahtara eşlenen bir kullanıcı için belirtilemiyor.
Important
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.
WITH LOGIN yan tümcesi, bir kullanıcının farklı bir oturum açma bilgilerine yeniden eşlenmeye olanak tanır. Oturum açma bilgisi olmayan kullanıcılar, sertifikayla eşlenen kullanıcılar veya asimetrik anahtarla eşlenen kullanıcılar bu yan tümceyle yeniden eşlenemez. Yalnızca SQL kullanıcıları yeniden eşlenebilir.
WITH LOGIN yan tümcesi, kullanıcı türünü değiştirmek için kullanılamaz.
Aşağıdaki koşullar doğruysa, kullanıcının adı otomatik olarak oturum açma adı olarak yeniden adlandırılır.
Yeni ad belirtilmedi.
Geçerli ad, oturum açma adından farklıdır.
Aksi takdirde, çağıran ek olarak NAME yan tümcesini çağırmadığı sürece kullanıcı yeniden adlandırılamaz.
SQL Server oturum açma bilgilerine, sertifikaya veya asimetrik anahtara eşlenen kullanıcının adı ters eğik çizgi karakterini (\) içeremez.
Note
Şemalar veritabanı kullanıcılarına eşdeğer değildir. Veritabanı kullanıcıları ile şemalar arasındaki farkları belirlemek için Sistem kataloğu görünümlerini kullanın.
Doku SQL veritabanı
Daha fazla bilgi için bkz:
Doku Ambarı
Microsoft Fabric Warehouse'da ALTER USER yalnızca varsayılan şemayı ayarlamakla sınırlıdır. SQL'de veya diğer ürünlerde ALTER USER ile yaygın olarak ilişkili diğer bağımsız değişkenler desteklenmez ve hata döndürür.
Microsoft Fabric Warehouse'da harmanlama adı büyük/küçük harfe duyarlıdır.
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 şema kullanılır. Varsayılan şema belirtilmezse, dbo şeması uygulanır. Veritabanı altyapısı önce kullanıcının varsayılan şemasındaki nesneleri çözümlemeye çalışır. Eşleşen bir nesne bulunmazsa dbo şemasını denetler.
DEFAULT_SCHEMA şu anda veritabanında mevcut olmayan bir şemaya ayarlanabilir. Bu nedenle, şema oluşturulmadan önce kullanıcıya bir DEFAULT_SCHEMA atayabilirsiniz.
Daha fazla bilgi için bkz:
Security
Note
ALTER ANY USER izni olan bir kullanıcı, herhangi bir kullanıcının varsayılan şemasını değiştirebilir. Şeması değiştirilmiş bir kullanıcı, farkında olmadan yanlış tablodan veri seçebilir veya yanlış şemadan kod yürütebilir.
Permissions
Kullanıcının adını değiştirmek için ALTER ANY USER izni gerekir.
Kullanıcının hedef oturum açma bilgilerini değiştirmek için veritabanında CONTROL izni gerekir.
Veritabanında CONTROL iznine sahip bir kullanıcının kullanıcı adını değiştirmek için veritabanında CONTROL izni gerekir.
Varsayılan şemayı veya dili değiştirmek için kullanıcı üzerinde ALTER izni gerekir. Kullanıcılar kendi varsayılan şemalarını veya dillerini değiştirebilir.
Doku Ambarı rol izinleri
Çalışma alanında en az KATKıDA BULUNAN rolü üyeliğine sahip kullanıcılar, Doku Veri Ambarı'ndaki tüm kullanıcıların DEFAULT SCHEMA değerini değiştirebilir.
Çalışma alanında GÖRÜNTÜLEYICI rolü üyeliği olan kullanıcılar, yükseltilmiş erişime sahip bir kullanıcı bu izni vermediği sürece kendi varsayılan şemalarını değiştiremez.
Çalışma alanı düzeyinde GÖRÜNTÜLEYICI rolüne dahil olan kullanıcılar, diğer kullanıcıların varsayılan şemasını değiştirmek için HERHANGİ Bİr KULLANICIYI DEĞİşTİr izni gerektirir.
Examples
Tüm örnekler bir kullanıcı veritabanında yürütülür.
A. Veritabanı kullanıcısının adını değiştirme
Aşağıdaki örnek, veritabanı kullanıcı Mary5 adını Mary51olarak değiştirir.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Kullanıcının varsayılan şemasını değiştirme
Aşağıdaki örnek, kullanıcı Mary51 varsayılan şemasını Purchasingolarak değiştirir.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
C. Aynı anda birkaç seçeneği değiştirme
Aşağıdaki örnek, tek bir deyimde bulunan bir veritabanı kullanıcısı için çeşitli seçenekleri değiştirir. ve <new strong password here> değerlerini kendi değerlerinizle değiştirin<old strong password here>.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>';
GO
D. Kullanıcının varsayılan şemasını değiştirme
Aşağıdaki örnek, kullanıcı Mary51 varsayılan şemasını Purchasingolarak değiştirir.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
İlgili içerik
- CREATE USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Kapsayıcı Veritabanları
- sp_migrate_user_to_contained (Transact-SQL)
- Microsoft Fabric Veri Ambarı'nda tabloları
- Microsoft Fabric SQL veritabanı Kimlik Doğrulaması
* SQL Yönetilen Örneği *
Azure Synapse'i
Analiz
Azure SQL Yönetilen Örneği
Syntax
Important
Microsoft Entra oturum açma bilgilerine sahip kullanıcılara uygulanırken Azure SQL Yönetilen Örneği için yalnızca aşağıdaki seçenekler desteklenir: DEFAULT_SCHEMA = { schema_name | NULL } ve DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }
Azure SQL Yönetilen Örneği'ne geçirilen bir veritabanındaki kullanıcıların yeniden eşlenmesine yardımcı olmak için eklenen yeni bir söz dizimi uzantısı vardır. ALTER USER söz dizimi, federasyon ve eşitlenmiş bir etki alanındaki veritabanı kullanıcılarını Microsoft Entra Kimliği ile Microsoft Entra oturum açma bilgileriyle eşlemeye yardımcı olur.
-- Syntax for SQL Managed Instance
ALTER USER user_name
{ WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]
<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
-- Users or groups that are migrated as federated and synchronized with Azure AD have the following syntax:
/** Applies to Windows users that were migrated and have the following user names:
- Windows user <domain\user>
- Windows group <domain\MyWindowsGroup>
- Windows alias <MyWindowsAlias>
**/
ALTER USER user_name
{ WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]
<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
Arguments
user_name
Kullanıcının bu veritabanında tanımlandığı adı belirtir.
LOGIN = login_name
Kullanıcının Güvenlik Tanımlayıcısını (SID) oturum açmanın SID'sine uyacak şekilde değiştirerek kullanıcıyı başka bir oturum açmayla yeniden eşler.
ALTER USER deyimi bir SQL toplu işlemindeki tek deyimse, Azure SQL Veritabanı WITH LOGIN yan tümcesini destekler. ALTER 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.
NAME = new_user_name
Bu kullanıcının yeni adını belirtir. new_user_name geçerli veritabanında zaten mevcut olmamalıdır.
DEFAULT_SCHEMA = { schema_name | NULL }
Bu kullanıcı için nesnelerin adlarını çözümlediğinde sunucu tarafından aranacak ilk şemayı belirtir. Varsayılan şemayı NULL olarak ayarlamak, windows grubundan varsayılan şemayı kaldırır. NULL seçeneği bir Windows kullanıcısı ile kullanılamaz.
PASSWORD = 'parola'
Değiştirilen kullanıcının parolasını belirtir. Parolalar büyük/küçük harfe duyarlıdır.
Note
Bu seçenek yalnızca bağımsız kullanıcılar için kullanılabilir. Daha fazla bilgi için bkz. Kapsanan Veritabanları ve sp_migrate_user_to_contained (Transact-SQL).
OLD_PASSWORD = 'oldpassword'
'parola' ile değiştirilecek geçerli kullanıcı parolası. Parolalar büyük/küçük harfe duyarlıdır. OLD_PASSWORD, ALTER ANY USER izniniz olmadığı sürece parolayı değiştirmek için gereklidir. OLD_PASSWORD zorunlu KIMLIĞE BÜRÜNME izni olan kullanıcıların parolayı değiştirmesini engeller.
Note
Bu seçenek yalnızca bağımsız kullanıcılar için kullanılabilir.
DEFAULT_LANGUAGE ={ NONE | <lcid> | <dil adı> | <dil diğer adı> }
Kullanıcıya atanacak varsayılan dili belirtir. Bu seçenek NONE olarak ayarlanırsa, varsayılan dil veritabanının geçerli varsayılan diline ayarlanır. Veritabanının varsayılan dili daha sonra değiştirilirse, kullanıcının varsayılan dili değişmeden kalır. DEFAULT_LANGUAGE yerel kimlik (lcid), dilin adı veya dil diğer adı olabilir.
Note
Bu seçenek yalnızca kapsanan bir veritabanında ve yalnızca kapsanan kullanıcılar için belirtilebilir.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | KAPALI ]
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.
Warning
Bu seçeneğin yanlış kullanılması veri bozulmasına neden olabilir. Daha fazla bilgi için bkz. Always Encrypted kullanarak şifrelenmiş verileri sütunlara toplu yükleme.
Remarks
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. Bir kullanıcı için varsayılan şema belirlenemiyorsa, dbo şeması kullanılır.
DEFAULT_SCHEMA şu anda veritabanında gerçekleşmeyen bir şemaya ayarlanabilir. Bu nedenle, şema oluşturulmadan önce kullanıcıya bir DEFAULT_SCHEMA atayabilirsiniz.
DEFAULT_SCHEMA, bir sertifikaya veya asimetrik anahtara eşlenen bir kullanıcı için belirtilemiyor.
Important
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.
Bir Windows oturum açma veya grubuyla eşlenen bir kullanıcının adını yalnızca yeni kullanıcı adının SID'sinin veritabanında kayıtlı SID ile eşleşmesi halinde değiştirebilirsiniz. Bu denetim, veritabanında Windows oturum açma bilgilerinin yanıltılmasını önlemeye yardımcı olur.
WITH LOGIN yan tümcesi, bir kullanıcının farklı bir oturum açma bilgilerine yeniden eşlenmeye olanak tanır. Oturum açma bilgisi olmayan kullanıcılar, sertifikayla eşlenen kullanıcılar veya asimetrik anahtarla eşlenen kullanıcılar bu yan tümceyle yeniden eşlenemez. Yalnızca SQL kullanıcıları ve Windows kullanıcıları (veya grupları) yeniden eşlenebilir.
WITH LOGIN yan tümcesi, Windows hesabını SQL Server oturum açma bilgilerine değiştirme gibi kullanıcı türünü değiştirmek için kullanılamaz. Tek istisna, bir Windows kullanıcısını Microsoft Entra kullanıcısı olarak değiştirmektir.
Note
Azure SQL Yönetilen Örneği'ne Windows oturum açma bilgileri oluşturmayı desteklemediğimizden, aşağıdaki kurallar Azure SQL Yönetilen Örneği'nin Windows kullanıcıları için geçerli değildir. WITH LOGIN seçeneği yalnızca Microsoft Entra oturum açma bilgileri mevcutsa kullanılabilir.
Aşağıdaki koşullar doğruysa, kullanıcının adı otomatik olarak oturum açma adı olarak yeniden adlandırılır.
Kullanıcı bir Windows kullanıcısıdır.
Ad bir Windows adıdır (ters eğik çizgi içerir).
Yeni ad belirtilmedi.
Geçerli ad, oturum açma adından farklıdır.
Aksi takdirde, çağıran ek olarak NAME yan tümcesini çağırmadığı sürece kullanıcı yeniden adlandırılamaz.
SQL Server oturum açma bilgilerine, sertifikaya veya asimetrik anahtara eşlenen kullanıcının adı ters eğik çizgi karakterini (\) içeremez.
Note
Şemalar veritabanı kullanıcılarına eşdeğer değildir. Veritabanı kullanıcıları ile şemalar arasındaki farkları belirlemek için Sistem kataloğu görünümlerini kullanın.
Şirket içi SQL'de Azure SQL Yönetilen Örneği'ne geçirilen Windows kullanıcıları için açıklamalar
Bu açıklamalar, federasyona alınmış ve Microsoft Entra Id ile eşitlenmiş Windows kullanıcıları olarak kimlik doğrulaması için geçerlidir.
- Microsoft Entra Id ile eşlenen Windows kullanıcılarının veya gruplarının doğrulanması, geçiş amacıyla kullanılan ALTER USER söz diziminin tüm sürümlerinde Graph API'si aracılığıyla varsayılan olarak gerçekleştirilir.
- Diğer ad kullanılan şirket içi kullanıcılar (özgün Windows hesabından farklı bir ad kullanın) diğer adı saklar.
- Microsoft Entra kimlik doğrulaması için LOGIN parametresi yalnızca Azure SQL Yönetilen Örneği için geçerlidir ve SQL Veritabanı ile kullanılamaz.
- Microsoft Entra sorumlularının oturum açma bilgilerini görüntülemek için şu komutu kullanın:
SELECT * FROM sys.server_principals;. - Oturum açma bilgilerinin belirtilen türünün
EveyaXolup olmadığını denetleyin. - PASSWORD seçeneği Microsoft Entra kullanıcıları için kullanılamaz.
- Tüm geçiş olaylarında, Windows kullanıcılarının veya gruplarının rolleri ve izinleri otomatik olarak yeni Microsoft Entra kullanıcılarına veya gruplarına aktarılır.
-
FROM EXTERNAL PROVIDER, Windows kullanıcılarını ve gruplarını şirket içi SQL'den Microsoft Entra kullanıcı ve gruplarına değiştirmeye yöneliktir. Bu uzantı kullanılırken Windows etki alanı Microsoft Entra Id ile birleştirilmiş olmalı ve tüm Windows etki alanı üyeleri Microsoft Entra Id içinde bulunmalıdır.FROM EXTERNAL PROVIDERsöz dizimi Azure SQL Yönetilen Örneği için geçerlidir ve Windows kullanıcılarının özgün SQL örneğinde oturum açmaları olmaması ve tek başına Microsoft Entra veritabanı kullanıcılarına eşlenmesi gerektiğinde kullanılmalıdır. - Bu durumda, izin verilebilen
user_name: - Bir Windows kullanıcısı (
domain\user). - Bir Windows grubu (
MyWindowsGroup). - Bir Windows diğer adı (
MyWindowsAlias). - ALTER komutunun sonucu, eski
user_nameeskiuser_nameözgün SID'sine göre Microsoft Entra Id'de bulunan karşılık gelen adla değiştirir. Değiştirilen ad değiştirilir ve veritabanının meta verilerinde depolanır: - (
domain\user) yerine Microsoft Entrauser@domain.comkullanılacaktır. - (
domain\MyWindowsGroup), Microsoft Entra grubu ile değiştirilecektir. - (
MyWindowsAlias) değişmeden kalır, ancak bu kullanıcının SID'si Microsoft Entra Kimliği'nde denetlenecektir.
Note
object_ID dönüştürülen özgün kullanıcının SID'si Microsoft Entra ID kiracısında bulunamazsa, ALTER USER komutu başarısız olur.
- Değiştirilen kullanıcıları görüntülemek için şu komutu kullanın:
SELECT * FROM sys.database_principals; - Kullanıcının belirtilen tür
EveyaXdenetleyin. - Windows kullanıcılarını Microsoft Entra kullanıcılarına geçirmek için AD kullanıldığında, aşağıdaki kısıtlamalar geçerlidir:
- Geçerli bir LOGIN belirtilmelidir.
- AD, Microsoft Entra Id kiracısında denetlenecek ve yalnızca:
- LOGIN'in adı.
- Diğer ad: Ad Microsoft Entra Kimliği'nde bulunamaz.
- Diğer tüm durumlarda söz dizimi başarısız olur.
Security
Note
ALTER ANY USER izni olan bir kullanıcı, herhangi bir kullanıcının varsayılan şemasını değiştirebilir. Şeması değiştirilmiş bir kullanıcı, farkında olmadan yanlış tablodan veri seçebilir veya yanlış şemadan kod yürütebilir.
Permissions
Kullanıcının adını değiştirmek için ALTER ANY USER izni gerekir.
Kullanıcının hedef oturum açma bilgilerini değiştirmek için veritabanında CONTROL izni gerekir.
Veritabanında CONTROL iznine sahip bir kullanıcının kullanıcı adını değiştirmek için veritabanında CONTROL izni gerekir.
Varsayılan şemayı veya dili değiştirmek için kullanıcı üzerinde ALTER izni gerekir. Kullanıcılar kendi varsayılan şemalarını veya dillerini değiştirebilir.
Examples
Tüm örnekler bir kullanıcı veritabanında yürütülür.
A. Veritabanı kullanıcısının adını değiştirme
Aşağıdaki örnek, veritabanı kullanıcı Mary5 adını Mary51olarak değiştirir.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Kullanıcının varsayılan şemasını değiştirme
Aşağıdaki örnek, kullanıcı Mary51 varsayılan şemasını Purchasingolarak değiştirir.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
C. Aynı anda birkaç seçeneği değiştirme
Aşağıdaki örnek, tek bir deyimde bulunan bir veritabanı kullanıcısı için çeşitli seçenekleri değiştirir. ve <new strong password here> değerlerini kendi değerlerinizle değiştirin<old strong password here>.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>'
, DEFAULT_LANGUAGE= French ;
GO
D. Geçiş sonrasında veritabanındaki kullanıcıyı Microsoft Entra oturum açma bilgileriyle eşleme
Aşağıdaki örnek, westus/joe kullanıcıyı joe@westus.combir Microsoft Entra kullanıcısına yeniden eşler. Bu örnek, yönetilen örnekte zaten var olan oturum açma işlemleri içindir. Bunun, Azure SQL Yönetilen Örneği'ne veritabanı geçişini tamamladıktan ve kimlik doğrulaması için Microsoft Entra oturum açma bilgilerini kullanmak istediğinizde gerçekleştirilmesi gerekir.
ALTER USER [westus/joe] WITH LOGIN = [joe@westus.com]
E. Azure SQL Yönetilen Örneği'nde oturum açmadan veritabanındaki eski bir Windows kullanıcısını Microsoft Entra kullanıcısına eşleme
Aşağıdaki örnek, oturum açmadan westus/joe kullanıcıyı joe@westus.combir Microsoft Entra kullanıcısına yeniden eşler. Federasyon kullanıcısı Microsoft Entra Kimliği'nde bulunmalıdır.
ALTER USER [westus/joe] FROM EXTERNAL PROVIDER
F. Kullanıcı diğer adını mevcut bir Microsoft Entra oturum açma bilgileriyle eşleme
Aşağıdaki örnek, westus\joe kullanıcı adını joe_aliasile yeniden eşler. Bu durumda ilgili Microsoft Entra oturum açma bilgileri joe@westus.com.
ALTER USER [westus/joe] WITH LOGIN = [joe@westus.com], name= joe_alias
G. Azure SQL Yönetilen Örneği'nde geçirilen bir Windows grubunu Microsoft Entra grubuna eşleme
Aşağıdaki örnek, yönetilen örnekteki bir Microsoft Entra grubu westus\mygroupmygroup eski şirket içi grubu yeniden eşler. Grup Microsoft Entra Id içinde bulunmalıdır.
ALTER USER [westus\mygroup] WITH LOGIN = mygroup;
İlgili içerik
- CREATE USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Kapsayıcı Veritabanları
- sp_migrate_user_to_contained (Transact-SQL)
- Öğreticisi: T-SQL DDL söz dizimi kullanarak SQL Server şirket içi Windows kullanıcılarını ve gruplarını SQL Yönetilen Örneğine geçirme
SQL Yönetilen Örneği
* Azure Synapse
Analiz *
Azure Synapse Analytics
Syntax
-- Syntax for Azure Synapse
ALTER USER user_name
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = new_user_name
| LOGIN = login_name
| DEFAULT_SCHEMA = schema_name
[;]
Arguments
user_name
Kullanıcının bu veritabanında tanımlandığı adı belirtir.
LOGIN = login_name
Kullanıcının Güvenlik Tanımlayıcısını (SID) oturum açmanın SID'sine uyacak şekilde değiştirerek kullanıcıyı başka bir oturum açmayla yeniden eşler.
ALTER USER deyimi bir SQL toplu işlemindeki tek deyimse, Azure SQL Veritabanı WITH LOGIN yan tümcesini destekler. ALTER 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.
NAME = new_user_name
Bu kullanıcının yeni adını belirtir. new_user_name geçerli veritabanında zaten mevcut olmamalıdır.
DEFAULT_SCHEMA = { schema_name | NULL }
Bu kullanıcı için nesnelerin adlarını çözümlediğinde sunucu tarafından aranacak ilk şemayı belirtir. Varsayılan şemayı NULL olarak ayarlamak, windows grubundan varsayılan şemayı kaldırır. NULL seçeneği bir Windows kullanıcısı ile kullanılamaz.
Remarks
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. Bir kullanıcı için varsayılan şema belirlenemiyorsa, dbo şeması kullanılır.
DEFAULT_SCHEMA şu anda veritabanında gerçekleşmeyen bir şemaya ayarlanabilir. Bu nedenle, şema oluşturulmadan önce kullanıcıya bir DEFAULT_SCHEMA atayabilirsiniz.
DEFAULT_SCHEMA, bir sertifikaya veya asimetrik anahtara eşlenen bir kullanıcı için belirtilemiyor.
Important
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.
WITH LOGIN yan tümcesi, bir kullanıcının farklı bir oturum açma bilgilerine yeniden eşlenmeye olanak tanır. Oturum açma bilgisi olmayan kullanıcılar, sertifikayla eşlenen kullanıcılar veya asimetrik anahtarla eşlenen kullanıcılar bu yan tümceyle yeniden eşlenemez. Yalnızca SQL kullanıcıları ve Windows kullanıcıları (veya grupları) yeniden eşlenebilir.
WITH LOGIN yan tümcesi, Windows hesabını SQL Server oturum açma bilgilerine değiştirme gibi kullanıcı türünü değiştirmek için kullanılamaz.
Aşağıdaki koşullar doğruysa, kullanıcının adı otomatik olarak oturum açma adı olarak yeniden adlandırılır.
Yeni ad belirtilmedi.
Geçerli ad, oturum açma adından farklıdır.
Aksi takdirde, çağıran ek olarak NAME yan tümcesini çağırmadığı sürece kullanıcı yeniden adlandırılamaz.
SQL Server oturum açma bilgilerine, sertifikaya veya asimetrik anahtara eşlenen kullanıcının adı ters eğik çizgi karakterini (\) içeremez.
Note
Şemalar veritabanı kullanıcılarına eşdeğer değildir. Veritabanı kullanıcıları ile şemalar arasındaki farkları belirlemek için Sistem kataloğu görünümlerini kullanın.
Security
Note
ALTER ANY USER izni olan bir kullanıcı, herhangi bir kullanıcının varsayılan şemasını değiştirebilir. Şeması değiştirilmiş bir kullanıcı, farkında olmadan yanlış tablodan veri seçebilir veya yanlış şemadan kod yürütebilir.
Permissions
Kullanıcının adını değiştirmek için ALTER ANY USER izni gerekir.
Kullanıcının hedef oturum açma bilgilerini değiştirmek için veritabanında CONTROL izni gerekir.
Veritabanında CONTROL iznine sahip bir kullanıcının kullanıcı adını değiştirmek için veritabanında CONTROL izni gerekir.
Varsayılan şemayı veya dili değiştirmek için kullanıcı üzerinde ALTER izni gerekir. Kullanıcılar kendi varsayılan şemalarını veya dillerini değiştirebilir.
Examples
Tüm örnekler bir kullanıcı veritabanında yürütülür.
A. Veritabanı kullanıcısının adını değiştirme
Aşağıdaki örnek, veritabanı kullanıcı Mary5 adını Mary51olarak değiştirir.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Kullanıcının varsayılan şemasını değiştirme
Aşağıdaki örnek, kullanıcı Mary51 varsayılan şemasını Purchasingolarak değiştirir.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
İlgili içerik
- CREATE USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Kapsayıcı Veritabanları
- sp_migrate_user_to_contained (Transact-SQL)
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
* Analiz
Platform Sistemi (PDW) *
Analiz Platformu Sistemi
Syntax
-- Syntax for Analytics Platform System
ALTER USER user_name
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = new_user_name
| LOGIN = login_name
| DEFAULT_SCHEMA = schema_name
[;]
Arguments
user_name
Kullanıcının bu veritabanında tanımlandığı adı belirtir.
LOGIN = login_name
Kullanıcının Güvenlik Tanımlayıcısını (SID) oturum açmanın SID'sine uyacak şekilde değiştirerek kullanıcıyı başka bir oturum açmayla yeniden eşler.
ALTER USER deyimi bir SQL toplu işlemindeki tek deyimse, Azure SQL Veritabanı WITH LOGIN yan tümcesini destekler. ALTER 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.
NAME = new_user_name
Bu kullanıcının yeni adını belirtir. new_user_name geçerli veritabanında zaten mevcut olmamalıdır.
DEFAULT_SCHEMA = { schema_name | NULL }
Bu kullanıcı için nesnelerin adlarını çözümlediğinde sunucu tarafından aranacak ilk şemayı belirtir. Varsayılan şemayı NULL olarak ayarlamak, windows grubundan varsayılan şemayı kaldırır. NULL seçeneği bir Windows kullanıcısı ile kullanılamaz.
Remarks
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. Bir kullanıcı için varsayılan şema belirlenemiyorsa, dbo şeması kullanılır.
DEFAULT_SCHEMA şu anda veritabanında gerçekleşmeyen bir şemaya ayarlanabilir. Bu nedenle, şema oluşturulmadan önce kullanıcıya bir DEFAULT_SCHEMA atayabilirsiniz.
DEFAULT_SCHEMA, bir sertifikaya veya asimetrik anahtara eşlenen bir kullanıcı için belirtilemiyor.
Important
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.
WITH LOGIN yan tümcesi, bir kullanıcının farklı bir oturum açma bilgilerine yeniden eşlenmeye olanak tanır. Oturum açma bilgisi olmayan kullanıcılar, sertifikayla eşlenen kullanıcılar veya asimetrik anahtarla eşlenen kullanıcılar bu yan tümceyle yeniden eşlenemez. Yalnızca SQL kullanıcıları ve Windows kullanıcıları (veya grupları) yeniden eşlenebilir.
WITH LOGIN yan tümcesi, Windows hesabını SQL Server oturum açma bilgilerine değiştirme gibi kullanıcı türünü değiştirmek için kullanılamaz.
Aşağıdaki koşullar doğruysa, kullanıcının adı otomatik olarak oturum açma adı olarak yeniden adlandırılır.
Yeni ad belirtilmedi.
Geçerli ad, oturum açma adından farklıdır.
Aksi takdirde, çağıran ek olarak NAME yan tümcesini çağırmadığı sürece kullanıcı yeniden adlandırılamaz.
SQL Server oturum açma bilgilerine, sertifikaya veya asimetrik anahtara eşlenen kullanıcının adı ters eğik çizgi karakterini (\) içeremez.
Note
Şemalar veritabanı kullanıcılarına eşdeğer değildir. Veritabanı kullanıcıları ile şemalar arasındaki farkları belirlemek için Sistem kataloğu görünümlerini kullanın.
Security
Note
ALTER ANY USER izni olan bir kullanıcı, herhangi bir kullanıcının varsayılan şemasını değiştirebilir. Şeması değiştirilmiş bir kullanıcı, farkında olmadan yanlış tablodan veri seçebilir veya yanlış şemadan kod yürütebilir.
Permissions
Kullanıcının adını değiştirmek için ALTER ANY USER izni gerekir.
Kullanıcının hedef oturum açma bilgilerini değiştirmek için veritabanında CONTROL izni gerekir.
Veritabanında CONTROL iznine sahip bir kullanıcının kullanıcı adını değiştirmek için veritabanında CONTROL izni gerekir.
Varsayılan şemayı veya dili değiştirmek için kullanıcı üzerinde ALTER izni gerekir. Kullanıcılar kendi varsayılan şemalarını veya dillerini değiştirebilir.
Examples
Tüm örnekler bir kullanıcı veritabanında yürütülür.
A. Veritabanı kullanıcısının adını değiştirme
Aşağıdaki örnek, veritabanı kullanıcı Mary5 adını Mary51olarak değiştirir.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Kullanıcının varsayılan şemasını değiştirme
Aşağıdaki örnek, kullanıcı Mary51 varsayılan şemasını Purchasingolarak değiştirir.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
İlgili içerik
- CREATE USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Kapsayıcı Veritabanları
- sp_migrate_user_to_contained (Transact-SQL)