ALTER USER (Transact-SQL)
Veritabanı kullanıcısını yeniden adlandırır veya varsayılan şemasını değiştirir.
Transact-SQL söz dizimi kuralları
Not
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 Veritabanı
Fabric'da SQL veritabanını
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
SQL Server
Sözdizimi
-- Syntax for SQL Server
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> }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
Bağımsız değişken
userName Kullanıcının bu veritabanında tanımlandığı adı belirtir.
LOGIN =loginName Kullanıcının Güvenlik Tanımlayıcısını (SID) oturum açma sid'sine uyacak şekilde değiştirerek kullanıcıyı başka bir oturum açmayla yeniden eşler.
NAME =newUserName Bu kullanıcının yeni adını belirtir. yeniUserName geçerli veritabanında zaten oluşmamalıdır.
DEFAULT_SCHEMA = { schemaName | 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 üzeri, SQL Veritabanı.
Değiştirilen kullanıcının parolasını belirtir. Parolalar büyük/küçük harfe duyarlıdır.
Not
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 üzeri, 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.
Not
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 üzeri.
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.
Not
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 ü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.
Açıklamalar
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 belirlenemezse 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.
Önemli
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şlenesini sağlar. 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 ayrıca 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.
Dikkat
SQL Server 2005'le başlayarak şemaların davranışı değişti. Sonuç olarak, şemaların veritabanı kullanıcılarına eşdeğer olduğunu varsayar kod artık doğru sonuçlar döndürmeyebilir. Sysobjects de dahil olmak üzere eski katalog görünümleri, şu DDL deyimlerinden herhangi birinin kullanıldığı bir veritabanında kullanılmamalıdır: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. Bu tür veritabanlarında bunun yerine yeni katalog görünümlerini kullanmanız gerekir. Yeni katalog görünümleri, SQL Server 2005'te tanıtılan sorumluların ve şemaların ayrımını dikkate alır. Katalog görünümleri hakkında daha fazla bilgi için bkz. Katalog Görünümleri (Transact-SQL).
Güvenlik
Not
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.
İzinler
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.
Örnekler
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ı Mary51
olarak 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ı Purchasing
olarak 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.
için geçerlidir: SQL Server 2012 (11.x) ve üzeri.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per'
, 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
Ayrıca bkz.
- CREATE USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Kapsanan Veritabanları
- EVENTDATA (Transact-SQL)
- sp_migrate_user_to_contained (Transact-SQL)
SQL Server
* Dokuda Azure SQL Veritabanı ve SQL Veritabanı *
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
Microsoft Fabric'te Azure SQL Veritabanı ve SQL veritabanı
Sözdizimi
Azure SQL Veritabanı söz dizimi
-- Syntax for Azure SQL Database
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = schemaName
| LOGIN = loginName
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
[;]
-- Azure SQL Database Update Syntax
ALTER USER userName
WITH <set_item> [ ,...n ]
[;]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
-- SQL Database syntax when connected to a federation member
ALTER USER userName
WITH <set_item> [ ,... n ]
[;]
<set_item> ::=
NAME = newUserName
Microsoft Fabric'te 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
[;]
Bağımsız değişken
userName
Kullanıcının bu veritabanında tanımlandığı adı belirtir.
LOGIN =loginName
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 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 =newUserName
Bu kullanıcının yeni adını belirtir. yeniUserName geçerli veritabanında zaten oluşmamalıdır.
DEFAULT_SCHEMA = { schemaName | 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 Veritabanı.
Değiştirilen kullanıcının parolasını belirtir. Parolalar büyük/küçük harfe duyarlıdır.
Not
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 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.
Not
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 ü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.
Açıklamalar
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 belirlenemezse 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.
Önemli
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şlenesini sağlar. 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.
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 ayrıca 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.
Dikkat
SQL Server 2005'le başlayarak şemaların davranışı değişti. Sonuç olarak, şemaların veritabanı kullanıcılarına eşdeğer olduğunu varsayar kod artık doğru sonuçlar döndürmeyebilir. Sysobjects de dahil olmak üzere eski katalog görünümleri, şu DDL deyimlerinden herhangi birinin kullanıldığı bir veritabanında kullanılmamalıdır: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. Bu tür veritabanlarında bunun yerine yeni katalog görünümlerini kullanmanız gerekir. Yeni katalog görünümleri, SQL Server 2005'te tanıtılan sorumluların ve şemaların ayrımını dikkate alır. Katalog görünümleri hakkında daha fazla bilgi için bkz. Katalog Görünümleri (Transact-SQL).
Güvenlik
Not
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.
İzinler
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.
Örnekler
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ı Mary51
olarak 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ı Purchasing
olarak 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.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per';
GO
Ayrıca bkz.
- CREATE USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Kapsanan Veritabanları
- EVENTDATA (Transact-SQL)
- sp_migrate_user_to_contained (Transact-SQL)
SQL Server
SQL Veritabanı
Fabric'da SQL veritabanını
* SQL Yönetilen Örneği *
Azure Synapse'i
Analiz
Azure SQL Yönetilen Örneği
Sözdizimi
Önemli
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 = { schemaName | 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 userName
{ WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| 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 userName
{ WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]
<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
Bağımsız değişken
userName Kullanıcının bu veritabanında tanımlandığı adı belirtir.
LOGIN =loginName Kullanıcının Güvenlik Tanımlayıcısını (SID) oturum açma sid'sine uyacak şekilde değiştirerek kullanıcıyı başka bir oturum açmayla yeniden eşler.
ALTER USER deyimi 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 =newUserName Bu kullanıcının yeni adını belirtir. yeniUserName geçerli veritabanında zaten oluşmamalıdır.
DEFAULT_SCHEMA = { schemaName | 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.
Not
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.
Not
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.
Not
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.
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.
Açıklamalar
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 belirlenemezse 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.
Önemli
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şlenesini sağlar. 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.
Not
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 ayrıca 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.
Dikkat
SQL Server 2005'le başlayarak şemaların davranışı değişti. Sonuç olarak, şemaların veritabanı kullanıcılarına eşdeğer olduğunu varsayar kod artık doğru sonuçlar döndürmeyebilir. Sysobjects de dahil olmak üzere eski katalog görünümleri, şu DDL deyimlerinden herhangi birinin kullanıldığı bir veritabanında kullanılmamalıdır: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. Bu tür veritabanlarında bunun yerine yeni katalog görünümlerini kullanmanız gerekir. Yeni katalog görünümleri, SQL Server 2005'te tanıtılan sorumluların ve şemaların ayrımını dikkate alır. Katalog görünümleri hakkında daha fazla bilgi için bkz. Katalog Görünümleri (Transact-SQL).
Ş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 aşağıdaki komutu kullanın:
select * from sys.server_principals
.
- Oturum açma bilgilerinin belirtilen türünün
E
veyaX
olup 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.
- Windows kullanıcılarını ve gruplarını şirket içi SQL'den Microsoft Entra kullanıcı ve gruplarına değiştirmek için yeni bir söz dizimi uzantısı FROM EXTERNAL PROVIDER kullanılabilir. 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 PROVIDER sö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çma bilgileri olmaması ve tek başına Microsoft Entra veritabanı kullanıcılarına eşlenmesi gerektiğinde kullanılmalıdır.
- Bu durumda, izin verilebilen userName şu şekilde olabilir:
- Bir Widows kullanıcısı (etki alanı\kullanıcı).
- Bir Windows grubu (MyWindowsGroup).
- Bir Windows diğer adı (MyWindowsAlias).
- ALTER komutunun sonucu, eski userName değerini, eski userName öğesinin ö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 Entra user@domain.comkullanılacaktır.
- (domain\MyWindowsGroup) Microsoft Entra grubuyla değiştirilir.
- (MyWindowsAlias) değişmeden kalır, ancak bu kullanıcının SID'si Microsoft Entra Kimliği'nde denetlenecektir.
Not
ObjectID'ye dönüştürülen özgün kullanıcının SID'si Microsoft Entra Kimliği'nde 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
E
veyaX
denetleyin. - 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 Kimliği'nde 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.
Güvenlik
Not
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.
İzinler
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.
Örnekler
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ı Mary51
olarak 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ı Purchasing
olarak 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.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per'
, 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.com
bir 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.com
bir 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_alias
ile 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 mygroup
westus\mygroup
eski şirket içi grubu yeniden eşler. Grup Microsoft Entra Id içinde bulunmalıdır.
ALTER USER [westus\mygroup] WITH LOGIN = mygroup
Ayrıca bkz.
SQL Server
SQL Veritabanı
Fabric'da SQL veritabanını
SQL Yönetilen Örneği
* Azure Synapse
Analiz *
Azure Synapse Analytics
Sözdizimi
-- Syntax for Azure Synapse
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| LOGIN = loginName
| DEFAULT_SCHEMA = schema_name
[;]
Bağımsız değişken
userName Kullanıcının bu veritabanında tanımlandığı adı belirtir.
LOGIN =loginName Kullanıcının Güvenlik Tanımlayıcısını (SID) oturum açma sid'sine uyacak şekilde değiştirerek kullanıcıyı başka bir oturum açmayla yeniden eşler.
ALTER USER deyimi 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 =newUserName Bu kullanıcının yeni adını belirtir. yeniUserName geçerli veritabanında zaten oluşmamalıdır.
DEFAULT_SCHEMA = { schemaName | 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.
Açıklamalar
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 belirlenemezse 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.
Önemli
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şlenesini sağlar. 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 ayrıca 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.
Dikkat
SQL Server 2005'le başlayarak şemaların davranışı değişti. Sonuç olarak, şemaların veritabanı kullanıcılarına eşdeğer olduğunu varsayar kod artık doğru sonuçlar döndürmeyebilir. Sysobjects de dahil olmak üzere eski katalog görünümleri, şu DDL deyimlerinden herhangi birinin kullanıldığı bir veritabanında kullanılmamalıdır: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. Bu tür veritabanlarında bunun yerine yeni katalog görünümlerini kullanmanız gerekir. Yeni katalog görünümleri, SQL Server 2005'te tanıtılan sorumluların ve şemaların ayrımını dikkate alır. Katalog görünümleri hakkında daha fazla bilgi için bkz. Katalog Görünümleri (Transact-SQL).
Güvenlik
Not
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.
İzinler
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.
Örnekler
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ı Mary51
olarak 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ı Purchasing
olarak değiştirir.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
Ayrıca bkz.
- CREATE USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Kapsanan Veritabanları
- EVENTDATA (Transact-SQL)
- sp_migrate_user_to_contained (Transact-SQL)
SQL Server
SQL Veritabanı
Fabric'da SQL veritabanını
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
* Analiz
Platform Sistemi (PDW) *
Analiz Platformu Sistemi
Sözdizimi
-- Syntax for Analytics Platform System
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| LOGIN = loginName
| DEFAULT_SCHEMA = schema_name
[;]
Bağımsız değişken
userName Kullanıcının bu veritabanında tanımlandığı adı belirtir.
LOGIN =loginName Kullanıcının Güvenlik Tanımlayıcısını (SID) oturum açma sid'sine uyacak şekilde değiştirerek kullanıcıyı başka bir oturum açmayla yeniden eşler.
ALTER USER deyimi 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 =newUserName Bu kullanıcının yeni adını belirtir. yeniUserName geçerli veritabanında zaten oluşmamalıdır.
DEFAULT_SCHEMA = { schemaName | 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.
Açıklamalar
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 belirlenemezse 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.
Önemli
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şlenesini sağlar. 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 ayrıca 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.
Dikkat
SQL Server 2005'le başlayarak şemaların davranışı değişti. Sonuç olarak, şemaların veritabanı kullanıcılarına eşdeğer olduğunu varsayar kod artık doğru sonuçlar döndürmeyebilir. Sysobjects de dahil olmak üzere eski katalog görünümleri, şu DDL deyimlerinden herhangi birinin kullanıldığı bir veritabanında kullanılmamalıdır: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. Bu tür veritabanlarında bunun yerine yeni katalog görünümlerini kullanmanız gerekir. Yeni katalog görünümleri, SQL Server 2005'te tanıtılan sorumluların ve şemaların ayrımını dikkate alır. Katalog görünümleri hakkında daha fazla bilgi için bkz. Katalog Görünümleri (Transact-SQL).
Güvenlik
Not
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.
İzinler
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.
Örnekler
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ı Mary51
olarak 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ı Purchasing
olarak değiştirir.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
Ayrıca bkz.
- CREATE USER (Transact-SQL)
- DROP USER (Transact-SQL)
- Kapsanan Veritabanları
- EVENTDATA (Transact-SQL)
- sp_migrate_user_to_contained (Transact-SQL)