ALTER USER (Transact-SQL)
Přejmenuje uživatele databáze nebo změní výchozí schéma.
Výběr produktu
V následujícím řádku vyberte název produktu, který vás zajímá, a zobrazí se jenom informace o daném produktu.
* SQL Server *
Azure Synapse
analýzy
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 ]
Argumenty
user_name
Určuje jméno, podle kterého je uživatel identifikován uvnitř této databáze.
LOGIN = login_name
Znovu namapuje uživatele na jiné přihlášení změnou identifikátoru zabezpečení uživatele (SID) tak, aby odpovídal identifikátoru SID přihlášení.
NAME = new_user_name
Určuje nový název tohoto uživatele. new_user_name již nesmí v aktuální databázi existovat.
DEFAULT_SCHEMA = { schema_name | NULL }
Určuje první schéma, které bude prohledávat server při překladu názvů objektů pro tohoto uživatele. Nastavení výchozího schématu na hodnotu NULL odebere výchozí schéma ze skupiny Windows. Možnost NULL nelze použít s uživatelem systému Windows.
PASSWORD = 'heslo'
platí pro: SQL Server 2012 (11.x) a novější verze, Azure SQL Database.
Určuje heslo pro uživatele, který se mění. V heslech se rozlišují malá a velká písmena.
Poznámka
Tato možnost je dostupná jenom pro uživatele s omezením. Další informace naleznete v tématu obsažené databáze a sp_migrate_user_to_contained (Transact-SQL).
OLD_PASSWORD ="oldpassword"
platí pro: SQL Server 2012 (11.x) a novější verze, Azure SQL Database.
Aktuální uživatelské heslo, které bude nahrazeno "heslo". V heslech se rozlišují malá a velká písmena. OLD_PASSWORD je nutné změnit heslo, pokud nemáte ALTER ANY USER oprávnění. Vyžadování OLD_PASSWORD zabrání uživatelům s oprávněním zosobnění změnit heslo.
Poznámka
Tato možnost je dostupná jenom pro uživatele s omezením.
DEFAULT_LANGUAGE ={ NONE | <lcid> | <název jazyka> | <alias jazyka> }
platí pro: SQL Server 2012 (11.x) a novější verze.
Určuje výchozí jazyk, který se má uživateli přiřadit. Pokud je tato možnost nastavena na HODNOTU NONE, výchozí jazyk je nastaven na aktuální výchozí jazyk databáze. Pokud se později změní výchozí jazyk databáze, výchozí jazyk uživatele zůstane beze změny. DEFAULT_LANGUAGE může být místní ID (lcid), název jazyka nebo alias jazyka.
Poznámka
Tuto možnost lze zadat pouze v databázi s omezením a pouze pro uživatele s omezením.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | VYPNUTO ]
platí pro: SQL Server 2016 (13.x) a novější verze, Azure SQL Database.
Potlačí kontroly kryptografických metadat na serveru v operacích hromadného kopírování. To uživateli umožňuje hromadně kopírovat šifrovaná data mezi tabulkami nebo databázemi bez dešifrování dat. Výchozí hodnota je VYPNUTÁ.
Varování
Nesprávné použití této možnosti může vést k poškození dat. Další informace najdete v tématu Hromadné načtení šifrovaných dat do sloupců pomocí funkce Always Encrypted.
Poznámky
Výchozí schéma bude prvním schématem, které bude server prohledávat při překladu názvů objektů pro tohoto uživatele databáze. Pokud neurčíte jinak, výchozí schéma bude vlastníkem objektů vytvořených tímto uživatelem databáze.
Pokud má uživatel výchozí schéma, použije se toto výchozí schéma. Pokud uživatel nemá výchozí schéma, ale uživatel je členem skupiny, která má výchozí schéma, použije se výchozí schéma skupiny. Pokud uživatel nemá výchozí schéma a je členem více než jedné skupiny, bude výchozím schématem pro uživatele skupina Windows s nejnižšími principal_id a explicitně nastaveným výchozím schématem. Pokud pro uživatele nelze určit žádné výchozí schéma, použije se dbo
schéma.
DEFAULT_SCHEMA lze nastavit na schéma, které v databázi aktuálně nedochází. Proto můžete uživateli přiřadit DEFAULT_SCHEMA před vytvořením schématu.
DEFAULT_SCHEMA nelze zadat pro uživatele, který je namapovaný na certifikát nebo asymetrický klíč.
Důležitý
Hodnota DEFAULT_SCHEMA se ignoruje, pokud je uživatel členem správce systému pevné role serveru. Všichni členové pevné role serveru mají výchozí schéma dbo
.
Jméno uživatele, který je namapovaný na přihlašovací jméno nebo skupinu systému Windows, můžete změnit pouze v případech, kdy identifikátor SID nového uživatelského jména odpovídá identifikátoru SID zaznamenanému v databázi. Tato kontrola pomáhá zabránit falšování identity přihlášení windows v databázi.
Klauzule WITH LOGIN
umožňuje přemapování uživatele na jiné přihlášení. Uživatelé bez přihlášení, uživatelé namapovaní na certifikát nebo uživatelé mapovaní na asymetrický klíč se s touto klauzulí nedají znovu namapovat. Přemapovat je možné jenom uživatele SQL a uživatele Windows (nebo skupiny). Klauzule WITH LOGIN
se nedá použít ke změně typu uživatele, například ke změně účtu systému Windows na přihlášení k SQL Serveru.
Neshoda identifikátoru SID může nastat, když jste obnovili databázi z jiného serveru a namapovali uživatele databáze na přihlášení k SQL Serveru. Tuto situaci můžete opravit pomocí klauzule WITH LOGIN
nahrazením identifikátoru SID uživatele v databázi identifikátorem SID pro přihlášení ze serveru.
Pokud jsou splněny následující podmínky, jméno uživatele se automaticky přejmenuje na přihlašovací jméno.
Uživatel je uživatel systému Windows.
Název je název Systému Windows (obsahuje zpětné lomítko).
Nebyl zadán žádný nový název.
Aktuální název se liší od přihlašovacího jména.
Jinak se uživatel nepřejmenuje, pokud volající navíc nevyvolá klauzuli NAME
.
Jméno uživatele namapovaného na přihlašovací jméno SQL Serveru, certifikát nebo asymetrický klíč nemohou obsahovat znak zpětného lomítka (\
).
Opatrnost
Počínaje SQL Serverem 2005 se změnilo chování schémat. Výsledkem je, že kód, který předpokládá, že schémata jsou ekvivalentní uživatelům databáze, už nemusí vracet správné výsledky. Stará zobrazení katalogu, včetně objektů sysobject, by neměla být použita v databázi, ve které byly použity některé z následujících příkazů DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. V takových databázích musíte místo toho použít nová zobrazení katalogu. Nová zobrazení katalogu berou v úvahu oddělení objektů zabezpečení a schémat zavedených v SYSTÉMU SQL Server 2005. Další informace o zobrazeních katalogu naleznete v tématu Zobrazení katalogu (Transact-SQL).
Bezpečnost
Poznámka
Uživatel, který má ALTER ANY USER oprávnění, může změnit výchozí schéma libovolného uživatele. Uživatel, který má změněné schéma, může neúmyslně vybrat data z nesprávné tabulky nebo spustit kód z nesprávného schématu.
Dovolení
Chcete-li změnit jméno uživatele, vyžaduje ALTER ANY USER oprávnění.
Ke změně cílového přihlášení uživatele se vyžaduje oprávnění CONTROL databáze.
Chcete-li změnit uživatelské jméno uživatele, který má oprávnění CONTROL k databázi, vyžaduje oprávnění CONTROL databáze.
Chcete-li změnit výchozí schéma nebo jazyk, vyžaduje oprávnění ALTER pro uživatele. Uživatelé můžou změnit vlastní výchozí schéma nebo jazyk.
Příklady
Všechny příklady se spouští v uživatelské databázi.
A. Změna názvu uživatele databáze
Následující příklad změní název uživatele databáze Mary5
na Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Změna výchozího schématu uživatele
Následující příklad změní výchozí schéma uživatele Mary51
na Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
C. Změna několika možností najednou
platí pro: SQL Server 2012 (11.x) a novější verze.
Následující příklad změní několik možností pro uživatele databáze s omezením v jednom příkazu. Nahraďte <new strong password here>
a <old strong password here>
nahraďte vlastními hodnotami.
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. Oprava neshodovaného identifikátoru SID
Následující příklad opraví identifikátor SID uživatele v databázi tak, aby odpovídal identifikátoru SID na serveru pro ověřené přihlášení k SQL Serveru.
ALTER USER Mai
WITH LOGIN = Mai;
GO
Související obsah
-
CREATE USER (Transact-SQL) - DROP USER (Transact-SQL)
- databáze s omezením
- sp_migrate_user_to_contained (Transact-SQL)
* Azure SQL Database a Microsoft Fabric *
Azure Synapse
analýzy
Azure SQL Database a Microsoft Fabric
Syntax
Syntaxe pro Azure SQL Database
-- 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
Syntaxe pro databázi SQL v Microsoft Fabric
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
[;]
Syntaxe pro Microsoft Fabric Warehouse
-- Syntax for Fabric Data Warehouse
ALTER USER user_name
WITH <set_item> [ ,...n ]
<set_item> ::=
| DEFAULT_SCHEMA = schema_name
[;]
Argumenty
user_name
Určuje jméno, podle kterého je uživatel identifikován uvnitř této databáze.
LOGIN = login_name
Znovu namapuje uživatele na jiné přihlášení změnou identifikátoru zabezpečení uživatele (SID) tak, aby odpovídal identifikátoru SID přihlášení.
Pokud je příkaz ALTER USER jediným příkazem v dávce SQL, Azure SQL Database podporuje klauzuli WITH LOGIN
. Pokud příkaz ALTER USER není jediným příkazem v dávce SQL nebo se provádí v dynamickém SQL, není klauzule WITH LOGIN
podporovaná.
NAME = new_user_name
Určuje nový název tohoto uživatele. new_user_name již nesmí v aktuální databázi existovat.
DEFAULT_SCHEMA = { schema_name | NULL }
Určuje první schéma, které bude prohledávat server při překladu názvů objektů pro tohoto uživatele.
Nastavení výchozího schématu na NULL
odebere výchozí schéma od uživatele vytvořeného pro skupinu MICROSOFT Entra ID. Možnost NULL nelze použít s žádným jiným druhem uživatele.
PASSWORD = 'heslo'
platí pro: Azure SQL Database.
Určuje heslo pro uživatele, který se mění. V heslech se rozlišují malá a velká písmena.
Poznámka
Tato možnost je dostupná jenom pro uživatele s omezením. Další informace naleznete v tématu obsažené databáze a sp_migrate_user_to_contained (Transact-SQL).
OLD_PASSWORD ="oldpassword"
platí pro: Azure SQL Database.
Aktuální uživatelské heslo, které bude nahrazeno "heslo". V heslech se rozlišují malá a velká písmena. OLD_PASSWORD je nutné změnit heslo, pokud nemáte ALTER ANY USER oprávnění. Vyžadování OLD_PASSWORD zabrání uživatelům s oprávněním zosobnění změnit heslo.
Poznámka
Tato možnost je dostupná jenom pro uživatele s omezením.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | VYPNUTO ]
platí pro: SQL Server 2016 (13.x) a novější verze, Azure SQL Database.
Potlačí kontroly kryptografických metadat na serveru v operacích hromadného kopírování. To uživateli umožňuje hromadně kopírovat šifrovaná data mezi tabulkami nebo databázemi bez dešifrování dat. Výchozí hodnota je VYPNUTÁ.
Varování
Nesprávné použití této možnosti může vést k poškození dat. Další informace najdete v tématu Hromadné načtení šifrovaných dat do sloupců pomocí funkce Always Encrypted.
Poznámky
Výchozí schéma bude prvním schématem, které bude server prohledávat při překladu názvů objektů pro tohoto uživatele databáze. Pokud neurčíte jinak, výchozí schéma bude vlastníkem objektů vytvořených tímto uživatelem databáze.
Pokud má uživatel výchozí schéma, použije se toto výchozí schéma. Pokud uživatel nemá výchozí schéma, ale uživatel je členem skupiny, která má výchozí schéma, použije se výchozí schéma skupiny. Pokud uživatel nemá výchozí schéma a je členem více než jedné skupiny, výchozí schéma pro uživatele bude mít nejnižší principal_id
a explicitně nastavené výchozí schéma. Pokud pro uživatele nelze určit žádné výchozí schéma, použije se dbo
schéma.
DEFAULT_SCHEMA lze nastavit na schéma, které v databázi aktuálně nedochází. Proto můžete uživateli přiřadit DEFAULT_SCHEMA před vytvořením schématu.
DEFAULT_SCHEMA nelze zadat pro uživatele, který je namapovaný na certifikát nebo asymetrický klíč.
Důležitý
Hodnota DEFAULT_SCHEMA se ignoruje, pokud je uživatel členem správce systému pevné role serveru. Všichni členové pevné role serveru mají výchozí schéma dbo
.
Klauzule WITH LOGIN
umožňuje přemapování uživatele na jiné přihlášení. Uživatelé bez přihlášení, uživatelé namapovaní na certifikát nebo uživatelé mapovaní na asymetrický klíč se s touto klauzulí nedají znovu namapovat. Přemapovat je možné jenom uživatele SQL. Klauzule WITH LOGIN
se nedá použít ke změně typu uživatele.
Pokud jsou splněny následující podmínky, jméno uživatele se automaticky přejmenuje na přihlašovací jméno.
Nebyl zadán žádný nový název.
Aktuální název se liší od přihlašovacího jména.
Jinak se uživatel nepřejmenuje, pokud volající navíc nevyvolá klauzuli NAME
.
Jméno uživatele namapovaného na přihlašovací jméno SQL Serveru, certifikát nebo asymetrický klíč nemohou obsahovat znak zpětného lomítka (\
).
Opatrnost
Počínaje SQL Serverem 2005 se změnilo chování schémat. Výsledkem je, že kód, který předpokládá, že schémata jsou ekvivalentní uživatelům databáze, už nemusí vracet správné výsledky. Stará zobrazení katalogu, včetně objektů sysobject, by neměla být použita v databázi, ve které byly použity některé z následujících příkazů DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. V takových databázích musíte místo toho použít nová zobrazení katalogu. Nová zobrazení katalogu berou v úvahu oddělení objektů zabezpečení a schémat zavedených v SYSTÉMU SQL Server 2005. Další informace o zobrazeních katalogu naleznete v tématu Zobrazení katalogu (Transact-SQL).
Databáze SQL infrastruktury
Další informace najdete tady:
- ověřování v databázi Microsoft Fabric SQL
- autorizace v databázi Microsoft Fabric SQL
Fabric Warehouse
V Microsoft Fabric Warehouse je alter USER omezen pouze na nastavení výchozího schématu. Všechny ostatní argumenty běžně spojené s ALTER USER v SQL nebo jiných produktech nejsou podporovány a vrátí chybu.
V Microsoft Fabric Warehouse se v názvu kolace rozlišují malá a velká písmena.
Výchozí schéma bude prvním schématem, které bude server prohledávat při překladu názvů objektů pro tohoto uživatele databáze. Pokud neurčíte jinak, výchozí schéma bude vlastníkem objektů vytvořených tímto uživatelem databáze.
Pokud má uživatel výchozí schéma, použije se toto schéma. Pokud není zadáno žádné výchozí schéma, použije se schéma dbo. Databázový stroj se nejprve pokusí přeložit objekty ve výchozím schématu uživatele. Pokud se nenajde žádný odpovídající objekt, zkontroluje schéma dbo.
DEFAULT_SCHEMA lze nastavit na schéma, které v databázi aktuálně neexistuje. Proto můžete uživateli přiřadit DEFAULT_SCHEMA před vytvořením schématu.
Další informace najdete tady:
Bezpečnost
Poznámka
Uživatel, který má ALTER ANY USER oprávnění, může změnit výchozí schéma libovolného uživatele. Uživatel, který má změněné schéma, může neúmyslně vybrat data z nesprávné tabulky nebo spustit kód z nesprávného schématu.
Dovolení
Chcete-li změnit jméno uživatele, vyžaduje ALTER ANY USER oprávnění.
Ke změně cílového přihlášení uživatele se vyžaduje oprávnění CONTROL databáze.
Chcete-li změnit uživatelské jméno uživatele, který má oprávnění CONTROL k databázi, vyžaduje oprávnění CONTROL databáze.
Chcete-li změnit výchozí schéma nebo jazyk, vyžaduje oprávnění ALTER pro uživatele. Uživatelé můžou změnit vlastní výchozí schéma nebo jazyk.
Oprávnění role Fabric Warehouse
Uživatelé s minimálním členstvím v roli PŘISPĚVATEL v pracovním prostoru můžou změnit výchozí schéma libovolného uživatele v datovém skladu Fabric.
Uživatelé s členstvím v roli VIEWER v pracovním prostoru nemohou změnit vlastní výchozí schéma, pokud uživatel se zvýšeným přístupem toto oprávnění nepovolí.
Uživatelé, kteří jsou součástí role VIEWER na úrovni pracovního prostoru, vyžadují oprávnění ALTER ANY USER ke změně výchozího schématu jiných uživatelů.
Příklady
Všechny příklady se spouští v uživatelské databázi.
A. Změna názvu uživatele databáze
Následující příklad změní název uživatele databáze Mary5
na Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Změna výchozího schématu uživatele
Následující příklad změní výchozí schéma uživatele Mary51
na Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
C. Změna několika možností najednou
Následující příklad změní několik možností pro uživatele databáze s omezením v jednom příkazu. Nahraďte <new strong password here>
a <old strong password here>
nahraďte vlastními hodnotami.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>';
GO
D. Změna výchozího schématu uživatele
Následující příklad změní výchozí schéma uživatele Mary51
na Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
Související obsah
-
CREATE USER (Transact-SQL) - DROP USER (Transact-SQL)
- databáze s omezením
- sp_migrate_user_to_contained (Transact-SQL)
- tabulky v datovém skladu Microsoft Fabric
- ověřování v databázi Microsoft Fabric SQL
* SQL Managed Instance *
Azure Synapse
analýzy
Spravovaná instance Azure SQL
Syntax
Důležitý
Při použití uživatelů s přihlášeními k Microsoft Entra jsou podporovány pouze následující možnosti pro azure SQL Managed Instance: DEFAULT_SCHEMA = { schema_name | NULL }
a DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }
Přidání nového rozšíření syntaxe, které pomáhá přemapovat uživatele v databázi, která byla migrována do azure SQL Managed Instance. Syntaxe ALTER USER pomáhá mapovat uživatele databáze v federované a synchronizované doméně s ID Microsoft Entra na přihlášení Microsoft Entra.
-- 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> }
Argumenty
user_name
Určuje jméno, podle kterého je uživatel identifikován uvnitř této databáze.
LOGIN = login_name
Znovu namapuje uživatele na jiné přihlášení změnou identifikátoru zabezpečení uživatele (SID) tak, aby odpovídal identifikátoru SID přihlášení.
Pokud je příkaz ALTER USER jediným příkazem v dávce SQL, Azure SQL Database podporuje klauzuli WITH LOGIN
. Pokud příkaz ALTER USER není jediným příkazem v dávce SQL nebo se provádí v dynamickém SQL, není klauzule WITH LOGIN
podporovaná.
NAME = new_user_name
Určuje nový název tohoto uživatele. new_user_name již nesmí v aktuální databázi existovat.
DEFAULT_SCHEMA = { schema_name | NULL }
Určuje první schéma, které bude prohledávat server při překladu názvů objektů pro tohoto uživatele. Nastavení výchozího schématu na hodnotu NULL odebere výchozí schéma ze skupiny Windows. Možnost NULL nelze použít s uživatelem systému Windows.
PASSWORD = 'heslo'
Určuje heslo pro uživatele, který se mění. V heslech se rozlišují malá a velká písmena.
Poznámka
Tato možnost je dostupná jenom pro uživatele s omezením. Další informace naleznete v tématu obsažené databáze a sp_migrate_user_to_contained (Transact-SQL).
OLD_PASSWORD = "oldpassword"
Aktuální uživatelské heslo, které bude nahrazeno "heslo". V heslech se rozlišují malá a velká písmena. OLD_PASSWORD je nutné změnit heslo, pokud nemáte ALTER ANY USER oprávnění. Vyžadování OLD_PASSWORD zabrání uživatelům s oprávněním zosobnění změnit heslo.
Poznámka
Tato možnost je dostupná jenom pro uživatele s omezením.
DEFAULT_LANGUAGE ={ NONE | <lcid> | <název jazyka> | <alias jazyka> }
Určuje výchozí jazyk, který se má uživateli přiřadit. Pokud je tato možnost nastavena na HODNOTU NONE, výchozí jazyk je nastaven na aktuální výchozí jazyk databáze. Pokud se později změní výchozí jazyk databáze, zůstane výchozí jazyk uživatele beze změny. DEFAULT_LANGUAGE může být místní ID (lcid), název jazyka nebo alias jazyka.
Poznámka
Tuto možnost lze zadat pouze v databázi s omezením a pouze pro uživatele s omezením.
ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | VYPNUTO ]
Potlačí kontroly kryptografických metadat na serveru v operacích hromadného kopírování. To uživateli umožňuje hromadně kopírovat šifrovaná data mezi tabulkami nebo databázemi bez dešifrování dat. Výchozí hodnota je VYPNUTÁ.
Varování
Nesprávné použití této možnosti může vést k poškození dat. Další informace najdete v tématu Hromadné načtení šifrovaných dat do sloupců pomocí funkce Always Encrypted.
Poznámky
Výchozí schéma bude prvním schématem, které bude server prohledávat při překladu názvů objektů pro tohoto uživatele databáze. Pokud neurčíte jinak, výchozí schéma bude vlastníkem objektů vytvořených tímto uživatelem databáze.
Pokud má uživatel výchozí schéma, použije se toto výchozí schéma. Pokud uživatel nemá výchozí schéma, ale uživatel je členem skupiny, která má výchozí schéma, použije se výchozí schéma skupiny. Pokud uživatel nemá výchozí schéma a je členem více než jedné skupiny, bude výchozím schématem pro uživatele skupina Windows s nejnižšími principal_id a explicitně nastaveným výchozím schématem. Pokud pro uživatele nelze určit žádné výchozí schéma, použije se dbo
schéma.
DEFAULT_SCHEMA lze nastavit na schéma, které v databázi aktuálně nedochází. Proto můžete uživateli přiřadit DEFAULT_SCHEMA před vytvořením schématu.
DEFAULT_SCHEMA nelze zadat pro uživatele, který je namapovaný na certifikát nebo asymetrický klíč.
Důležitý
Hodnota DEFAULT_SCHEMA se ignoruje, pokud je uživatel členem správce systému pevné role serveru. Všichni členové pevné role serveru mají výchozí schéma dbo
.
Jméno uživatele, který je namapovaný na přihlašovací jméno nebo skupinu systému Windows, můžete změnit pouze v případech, kdy identifikátor SID nového uživatelského jména odpovídá identifikátoru SID zaznamenanému v databázi. Tato kontrola pomáhá zabránit falšování identity přihlášení windows v databázi.
Klauzule WITH LOGIN
umožňuje přemapování uživatele na jiné přihlášení. Uživatelé bez přihlášení, uživatelé namapovaní na certifikát nebo uživatelé mapovaní na asymetrický klíč se s touto klauzulí nedají znovu namapovat. Přemapovat je možné jenom uživatele SQL a uživatele Windows (nebo skupiny). Klauzule WITH LOGIN
se nedá použít ke změně typu uživatele, například ke změně účtu systému Windows na přihlášení k SQL Serveru. Jedinou výjimkou je změna uživatele systému Windows na uživatele Microsoft Entra.
Poznámka
Následující pravidla se nevztahují na uživatele Windows ve službě Azure SQL Managed Instance, protože nepodporujeme vytváření přihlášení windows ve službě Azure SQL Managed Instance. Možnost WITH LOGIN lze použít pouze v případě, že jsou k dispozici přihlášení Microsoft Entra.
Pokud jsou splněny následující podmínky, jméno uživatele se automaticky přejmenuje na přihlašovací jméno.
Uživatel je uživatel systému Windows.
Název je název Systému Windows (obsahuje zpětné lomítko).
Nebyl zadán žádný nový název.
Aktuální název se liší od přihlašovacího jména.
Jinak se uživatel nepřejmenuje, pokud volající navíc nevyvolá klauzuli NAME
.
Jméno uživatele namapovaného na přihlašovací jméno SQL Serveru, certifikát nebo asymetrický klíč nemohou obsahovat znak zpětného lomítka (\
).
Opatrnost
Počínaje SQL Serverem 2005 se změnilo chování schémat. Výsledkem je, že kód, který předpokládá, že schémata jsou ekvivalentní uživatelům databáze, už nemusí vracet správné výsledky. Stará zobrazení katalogu, včetně objektů sysobject, by neměla být použita v databázi, ve které byly použity některé z následujících příkazů DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. V takových databázích musíte místo toho použít nová zobrazení katalogu. Nová zobrazení katalogu berou v úvahu oddělení objektů zabezpečení a schémat zavedených v SYSTÉMU SQL Server 2005. Další informace o zobrazeních katalogu naleznete v tématu Zobrazení katalogu (Transact-SQL).
Poznámky pro uživatele Windows v místním SQL migrovaném do Azure SQL Managed Instance
Tyto poznámky platí pro ověřování jako uživatelé Windows, kteří byli federovaní a synchronizovaní s Microsoft Entra ID.
- Ověřování uživatelů nebo skupin Windows mapovaných na ID Microsoft Entra se ve výchozím nastavení provádí prostřednictvím rozhraní Graph API ve všech verzích syntaxe ALTER USER, které se používají pro účely migrace.
- Místní uživatelé, kteří byli aliasovaní (používají jiný název než původní účet Windows), budou název aliasu uchovávat.
- U ověřování Microsoft Entra platí parametr LOGIN pouze pro službu Azure SQL Managed Instance a nejde ho použít se službou SQL Database.
- Pokud chcete zobrazit přihlášení pro objekty zabezpečení Microsoft Entra, použijte následující příkaz:
SELECT * FROM sys.server_principals;
. - Zkontrolujte, jestli je zadaný typ přihlášení
E
neboX
. - Možnost HESLO nelze použít pro uživatele Microsoft Entra.
- Ve všech případech migrace se role a oprávnění uživatelů nebo skupin Windows automaticky přenesou do nových uživatelů nebo skupin Microsoft Entra.
-
FROM EXTERNAL PROVIDER
je pro změnu uživatelů a skupin Windows z místního SQL na uživatele a skupiny Microsoft Entra. Doména Windows musí být federovaná s ID Microsoft Entra a všichni členové domény Systému Windows musí existovat v Microsoft Entra ID při použití tohoto rozšíření. SyntaxeFROM EXTERNAL PROVIDER
platí pro spravovanou instanci Azure SQL a měla by se použít v případě, že uživatelé Windows nemají v původní instanci SQL přihlášení a je potřeba je namapovat na samostatné uživatele databáze Microsoft Entra. - V tomto případě může být povolená
user_name
: - Uživatel Windows (
domain\user
). - Skupina Windows (
MyWindowsGroup
). - Alias Windows (
MyWindowsAlias
). - Výsledek příkazu ALTER nahradí starý
user_name
odpovídajícím názvem, který se nachází v Microsoft Entra ID na základě původního identifikátoru SID staréhouser_name
. Změněný název se nahradí a uloží v metadatech databáze: - (
domain\user
) bude nahrazena microsoft Entrauser@domain.com
. - (
domain\MyWindowsGroup
) bude nahrazena skupinou Microsoft Entra. - (
MyWindowsAlias
) zůstane beze změny, ale identifikátor SID tohoto uživatele bude vrácen se změnami v Microsoft Entra ID.
Poznámka
Pokud identifikátor SID původního uživatele převedeného na object_ID
nelze najít v tenantovi Microsoft Entra ID, příkaz ALTER USER
selže.
- Pokud chcete zobrazit změněné uživatele, použijte následující příkaz:
SELECT * FROM sys.database_principals;
- Zkontrolujte zadaný typ uživatele
E
neboX
. - Pokud se k migraci uživatelů Systému Windows na uživatele Microsoft Entra používá název, platí následující omezení:
- Je nutné zadat platné PŘIHLÁŠENÍ.
- Název bude vrácený se změnami v tenantovi Microsoft Entra ID a může to být pouze:
- Název PŘIHLÁŠENÍ.
- Alias – název nemůže existovat v ID Microsoft Entra.
- Ve všech ostatních případech syntaxe selže.
Bezpečnost
Poznámka
Uživatel, který má ALTER ANY USER oprávnění, může změnit výchozí schéma libovolného uživatele. Uživatel, který má změněné schéma, může neúmyslně vybrat data z nesprávné tabulky nebo spustit kód z nesprávného schématu.
Dovolení
Chcete-li změnit jméno uživatele, vyžaduje ALTER ANY USER oprávnění.
Ke změně cílového přihlášení uživatele se vyžaduje oprávnění CONTROL databáze.
Chcete-li změnit uživatelské jméno uživatele, který má oprávnění CONTROL k databázi, vyžaduje oprávnění CONTROL databáze.
Chcete-li změnit výchozí schéma nebo jazyk, vyžaduje oprávnění ALTER pro uživatele. Uživatelé můžou změnit vlastní výchozí schéma nebo jazyk.
Příklady
Všechny příklady se spouští v uživatelské databázi.
A. Změna názvu uživatele databáze
Následující příklad změní název uživatele databáze Mary5
na Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Změna výchozího schématu uživatele
Následující příklad změní výchozí schéma uživatele Mary51
na Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
C. Změna několika možností najednou
Následující příklad změní několik možností pro uživatele databáze s omezením v jednom příkazu. Nahraďte <new strong password here>
a <old strong password here>
nahraďte vlastními hodnotami.
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. Mapování uživatele v databázi na přihlášení Microsoft Entra po migraci
Následující příklad přemapuje uživatele, westus/joe
na uživatele Microsoft Entra, joe@westus.com
. Tento příklad je určený pro přihlášení, která už ve spravované instanci existují. To je potřeba provést po dokončení migrace databáze do azure SQL Managed Instance a chcete k ověření použít přihlášení Microsoft Entra.
ALTER USER [westus/joe] WITH LOGIN = [joe@westus.com]
E. Mapování starého uživatele Windows v databázi bez přihlášení ve službě Azure SQL Managed Instance na uživatele Microsoft Entra
Následující příklad přemapuje uživatele, westus/joe
bez přihlášení, na uživatele Microsoft Entra, joe@westus.com
. Federovaný uživatel musí existovat v Microsoft Entra ID.
ALTER USER [westus/joe] FROM EXTERNAL PROVIDER
F. Mapování uživatelského aliasu na existující přihlášení Microsoft Entra
Následující příklad přemapuje uživatelské jméno, westus\joe
na joe_alias
. Odpovídající přihlášení Microsoft Entra v tomto případě je joe@westus.com
.
ALTER USER [westus/joe] WITH LOGIN = [joe@westus.com], name= joe_alias
G. Mapování skupiny Windows migrované ve službě Azure SQL Managed Instance na skupinu Microsoft Entra
Následující příklad přemapuje starou místní skupinu westus\mygroup
na skupinu Microsoft Entra mygroup
ve spravované instanci. Skupina musí existovat v MICROSOFT Entra ID.
ALTER USER [westus\mygroup] WITH LOGIN = mygroup;
Související obsah
* Azure Synapse
Analýza *
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
[;]
Argumenty
user_name
Určuje jméno, podle kterého je uživatel identifikován uvnitř této databáze.
LOGIN = login_name
Znovu namapuje uživatele na jiné přihlášení změnou identifikátoru zabezpečení uživatele (SID) tak, aby odpovídal identifikátoru SID přihlášení.
Pokud je příkaz ALTER USER jediným příkazem v dávce SQL, Azure SQL Database podporuje klauzuli WITH LOGIN
. Pokud příkaz ALTER USER není jediným příkazem v dávce SQL nebo se provádí v dynamickém SQL, není klauzule WITH LOGIN
podporovaná.
NAME = new_user_name
Určuje nový název tohoto uživatele. new_user_name již nesmí v aktuální databázi existovat.
DEFAULT_SCHEMA = { schema_name | NULL }
Určuje první schéma, které bude prohledávat server při překladu názvů objektů pro tohoto uživatele. Nastavení výchozího schématu na hodnotu NULL odebere výchozí schéma ze skupiny Windows. Možnost NULL nelze použít s uživatelem systému Windows.
Poznámky
Výchozí schéma bude prvním schématem, které bude server prohledávat při překladu názvů objektů pro tohoto uživatele databáze. Pokud neurčíte jinak, výchozí schéma bude vlastníkem objektů vytvořených tímto uživatelem databáze.
Pokud má uživatel výchozí schéma, použije se toto výchozí schéma. Pokud uživatel nemá výchozí schéma, ale uživatel je členem skupiny, která má výchozí schéma, použije se výchozí schéma skupiny. Pokud uživatel nemá výchozí schéma a je členem více než jedné skupiny, bude výchozím schématem pro uživatele skupina Windows s nejnižšími principal_id a explicitně nastaveným výchozím schématem. Pokud pro uživatele nelze určit žádné výchozí schéma, použije se dbo
schéma.
DEFAULT_SCHEMA lze nastavit na schéma, které v databázi aktuálně nedochází. Proto můžete uživateli přiřadit DEFAULT_SCHEMA před vytvořením schématu.
DEFAULT_SCHEMA nelze zadat pro uživatele, který je namapovaný na certifikát nebo asymetrický klíč.
Důležitý
Hodnota DEFAULT_SCHEMA se ignoruje, pokud je uživatel členem správce systému pevné role serveru. Všichni členové pevné role serveru mají výchozí schéma dbo
.
Klauzule WITH LOGIN
umožňuje přemapování uživatele na jiné přihlášení. Uživatelé bez přihlášení, uživatelé namapovaní na certifikát nebo uživatelé mapovaní na asymetrický klíč se s touto klauzulí nedají znovu namapovat. Přemapovat je možné jenom uživatele SQL a uživatele Windows (nebo skupiny). Klauzule WITH LOGIN
se nedá použít ke změně typu uživatele, například ke změně účtu systému Windows na přihlášení k SQL Serveru.
Pokud jsou splněny následující podmínky, jméno uživatele se automaticky přejmenuje na přihlašovací jméno.
Nebyl zadán žádný nový název.
Aktuální název se liší od přihlašovacího jména.
Jinak se uživatel nepřejmenuje, pokud volající navíc nevyvolá klauzuli NAME
.
Jméno uživatele namapovaného na přihlašovací jméno SQL Serveru, certifikát nebo asymetrický klíč nemohou obsahovat znak zpětného lomítka (\
).
Opatrnost
Počínaje SQL Serverem 2005 se změnilo chování schémat. Výsledkem je, že kód, který předpokládá, že schémata jsou ekvivalentní uživatelům databáze, už nemusí vracet správné výsledky. Stará zobrazení katalogu, včetně objektů sysobject, by neměla být použita v databázi, ve které byly použity některé z následujících příkazů DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. V takových databázích musíte místo toho použít nová zobrazení katalogu. Nová zobrazení katalogu berou v úvahu oddělení objektů zabezpečení a schémat zavedených v SYSTÉMU SQL Server 2005. Další informace o zobrazeních katalogu naleznete v tématu Zobrazení katalogu (Transact-SQL).
Bezpečnost
Poznámka
Uživatel, který má ALTER ANY USER oprávnění, může změnit výchozí schéma libovolného uživatele. Uživatel, který má změněné schéma, může neúmyslně vybrat data z nesprávné tabulky nebo spustit kód z nesprávného schématu.
Dovolení
Chcete-li změnit jméno uživatele, vyžaduje ALTER ANY USER oprávnění.
Ke změně cílového přihlášení uživatele se vyžaduje oprávnění CONTROL databáze.
Chcete-li změnit uživatelské jméno uživatele, který má oprávnění CONTROL k databázi, vyžaduje oprávnění CONTROL databáze.
Chcete-li změnit výchozí schéma nebo jazyk, vyžaduje oprávnění ALTER pro uživatele. Uživatelé můžou změnit vlastní výchozí schéma nebo jazyk.
Příklady
Všechny příklady se spouští v uživatelské databázi.
A. Změna názvu uživatele databáze
Následující příklad změní název uživatele databáze Mary5
na Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Změna výchozího schématu uživatele
Následující příklad změní výchozí schéma uživatele Mary51
na Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
Související obsah
-
CREATE USER (Transact-SQL) - DROP USER (Transact-SQL)
- databáze s omezením
- sp_migrate_user_to_contained (Transact-SQL)
Azure Synapse
analýzy
* Analytics
Systém platformy (PDW) *
Systém analytických platforem
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
[;]
Argumenty
user_name
Určuje jméno, podle kterého je uživatel identifikován uvnitř této databáze.
LOGIN = login_name
Znovu namapuje uživatele na jiné přihlášení změnou identifikátoru zabezpečení uživatele (SID) tak, aby odpovídal identifikátoru SID přihlášení.
Pokud je příkaz ALTER USER jediným příkazem v dávce SQL, Azure SQL Database podporuje klauzuli WITH LOGIN
. Pokud příkaz ALTER USER není jediným příkazem v dávce SQL nebo se provádí v dynamickém SQL, není klauzule WITH LOGIN
podporovaná.
NAME = new_user_name
Určuje nový název tohoto uživatele. new_user_name již nesmí v aktuální databázi existovat.
DEFAULT_SCHEMA = { schema_name | NULL }
Určuje první schéma, které bude prohledávat server při překladu názvů objektů pro tohoto uživatele. Nastavení výchozího schématu na hodnotu NULL odebere výchozí schéma ze skupiny Windows. Možnost NULL nelze použít s uživatelem systému Windows.
Poznámky
Výchozí schéma bude prvním schématem, které bude server prohledávat při překladu názvů objektů pro tohoto uživatele databáze. Pokud neurčíte jinak, výchozí schéma bude vlastníkem objektů vytvořených tímto uživatelem databáze.
Pokud má uživatel výchozí schéma, použije se toto výchozí schéma. Pokud uživatel nemá výchozí schéma, ale uživatel je členem skupiny, která má výchozí schéma, použije se výchozí schéma skupiny. Pokud uživatel nemá výchozí schéma a je členem více než jedné skupiny, bude výchozím schématem pro uživatele skupina Windows s nejnižšími principal_id a explicitně nastaveným výchozím schématem. Pokud pro uživatele nelze určit žádné výchozí schéma, použije se dbo
schéma.
DEFAULT_SCHEMA lze nastavit na schéma, které v databázi aktuálně nedochází. Proto můžete uživateli přiřadit DEFAULT_SCHEMA před vytvořením schématu.
DEFAULT_SCHEMA nelze zadat pro uživatele, který je namapovaný na certifikát nebo asymetrický klíč.
Důležitý
Hodnota DEFAULT_SCHEMA se ignoruje, pokud je uživatel členem správce systému pevné role serveru. Všichni členové pevné role serveru mají výchozí schéma dbo
.
Klauzule WITH LOGIN
umožňuje přemapování uživatele na jiné přihlášení. Uživatelé bez přihlášení, uživatelé namapovaní na certifikát nebo uživatelé mapovaní na asymetrický klíč se s touto klauzulí nedají znovu namapovat. Přemapovat je možné jenom uživatele SQL a uživatele Windows (nebo skupiny). Klauzule WITH LOGIN
se nedá použít ke změně typu uživatele, například ke změně účtu systému Windows na přihlášení k SQL Serveru.
Pokud jsou splněny následující podmínky, jméno uživatele se automaticky přejmenuje na přihlašovací jméno.
Nebyl zadán žádný nový název.
Aktuální název se liší od přihlašovacího jména.
Jinak se uživatel nepřejmenuje, pokud volající navíc nevyvolá klauzuli NAME
.
Jméno uživatele namapovaného na přihlašovací jméno SQL Serveru, certifikát nebo asymetrický klíč nemohou obsahovat znak zpětného lomítka (\
).
Opatrnost
Počínaje SQL Serverem 2005 se změnilo chování schémat. Výsledkem je, že kód, který předpokládá, že schémata jsou ekvivalentní uživatelům databáze, už nemusí vracet správné výsledky. Stará zobrazení katalogu, včetně objektů sysobject, by neměla být použita v databázi, ve které byly použity některé z následujících příkazů DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. V takových databázích musíte místo toho použít nová zobrazení katalogu. Nová zobrazení katalogu berou v úvahu oddělení objektů zabezpečení a schémat zavedených v SYSTÉMU SQL Server 2005. Další informace o zobrazeních katalogu naleznete v tématu Zobrazení katalogu (Transact-SQL).
Bezpečnost
Poznámka
Uživatel, který má ALTER ANY USER oprávnění, může změnit výchozí schéma libovolného uživatele. Uživatel, který má změněné schéma, může neúmyslně vybrat data z nesprávné tabulky nebo spustit kód z nesprávného schématu.
Dovolení
Chcete-li změnit jméno uživatele, vyžaduje ALTER ANY USER oprávnění.
Ke změně cílového přihlášení uživatele se vyžaduje oprávnění CONTROL databáze.
Chcete-li změnit uživatelské jméno uživatele, který má oprávnění CONTROL k databázi, vyžaduje oprávnění CONTROL databáze.
Chcete-li změnit výchozí schéma nebo jazyk, vyžaduje oprávnění ALTER pro uživatele. Uživatelé můžou změnit vlastní výchozí schéma nebo jazyk.
Příklady
Všechny příklady se spouští v uživatelské databázi.
A. Změna názvu uživatele databáze
Následující příklad změní název uživatele databáze Mary5
na Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
B. Změna výchozího schématu uživatele
Následující příklad změní výchozí schéma uživatele Mary51
na Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
Související obsah
-
CREATE USER (Transact-SQL) - DROP USER (Transact-SQL)
- databáze s omezením
- sp_migrate_user_to_contained (Transact-SQL)