Eventos
31 de mar., 23 - 2 de abr., 23
O maior evento de aprendizado de SQL, Fabric e Power BI. 31 de março a 2 de abril. Use o código FABINSIDER para economizar $ 400.
Registre-se hoje mesmoNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Renomeia um usuário de banco de dados ou altera seu esquema padrão.
Convenções de sintaxe de Transact-SQL
Observação
O Microsoft Entra ID era conhecido como Azure Active Directory (Azure AD).
Na linha a seguir, selecione o nome do produto em que você tem interesse e somente as informações do produto serão exibidas.
* SQL Server *
-- 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 ]
Especifica o nome pelo qual o usuário é identificado nesse banco de dados.
Mapeia novamente um usuário para outro logon alterando o SID (identificador de segurança) do usuário para corresponder ao SID do logon.
Especifica o novo nome para o usuário. new_user_name ainda não deve existir no banco de dados atual.
Especifica o primeiro esquema que será pesquisado pelo servidor quando ele resolver os nomes de objetos para este usuário. A configuração do esquema padrão como NULL remove um esquema padrão de um grupo do Windows. A opção NULL não pode ser usada com um usuário do Windows.
aplica-se a: SQL Server 2012 (11.x) e versões posteriores, Banco de Dados SQL do Azure.
Especifica a senha do logon do usuário que está sendo alterado. As senhas diferenciam maiúsculas de minúsculas.
Observação
Essa opção está disponível apenas para usuários contidos. Confira mais informações em Bancos de dados independentes e sp_migrate_user_to_contained (Transact-SQL).
aplica-se a: SQL Server 2012 (11.x) e versões posteriores, Banco de Dados SQL do Azure.
A senha do usuário atual que será substituída por 'password'. As senhas diferenciam maiúsculas de minúsculas. OLD_PASSWORD é necessária para alterar uma senha, a menos que você tenha a permissão ALTER ANY USER. Exigir OLD_PASSWORD impede que os usuários com a permissão IMPERSONATION alterem a senha.
Observação
Essa opção está disponível apenas para usuários contidos.
Aplica-se a: SQL Server 2012 (11.x) e versões posteriores.
Especifica um idioma padrão a ser atribuído ao usuário. Se essa opção não for definida como NONE, o idioma padrão será definido como o idioma padrão do banco de dados. Se o idioma padrão do banco de dados for alterado posteriormente, o idioma padrão do usuário permanecerá inalterado. DEFAULT_LANGUAGE pode ser a lcid (ID local), o nome do idioma ou o alias do idioma.
Observação
Essa opção só pode ser especificada em um banco de dados independente e somente para usuários independentes.
aplica-se a: SQL Server 2016 (13.x) e versões posteriores, Banco de Dados SQL do Azure.
Suprime as verificações de metadados criptográficos no servidor em operações de cópia em massa. Isso permite que o usuário copie em massa dados criptografados entre tabelas ou bancos de dados sem descriptografá-los. O padrão é OFF.
Aviso
O uso inadequado dessa opção pode resultar em dados corrompidos. Para obter mais informações, consulte carregar dados criptografados em massa em colunas usando o Always Encrypted.
O esquema padrão será o primeiro esquema que será pesquisado pelo servidor ao resolver os nomes dos objetos para esse usuário de banco de dados. A não ser quando especificado de outra forma, o esquema padrão será o proprietário dos objetos criados pelo usuário de banco de dados.
Se o usuário tiver um esquema padrão, esse esquema será usado. Se o usuário não tiver um esquema padrão, mas for um membro de um grupo que tenha um esquema padrão, o esquema do grupo será usado. Se o usuário não tiver um esquema padrão e for membro de mais de um grupo, o esquema padrão do usuário será o do grupo do Windows com o menor principal_id e um esquema padrão definido explicitamente. Se nenhum esquema padrão puder ser determinado para um usuário, o esquema dbo
será usado.
DEFAULT_SCHEMA pode ser definido como um esquema que não ocorre atualmente no banco de dados. Portanto, você pode atribuir um DEFAULT_SCHEMA a um usuário antes de o esquema ser criado.
Não é possível especificar DEFAULT_SCHEMA para um usuário que esteja mapeado para um certificado ou uma chave assimétrica.
Importante
O valor de DEFAULT_SCHEMA será ignorado se o usuário for membro da função de servidor fixa sysadmin. Todos os membros da função de servidor fixa sysadmin têm um esquema padrão de dbo
.
É possível alterar o nome de um usuário que esteja mapeado para um grupo ou logon do Windows somente quando o SID do novo nome de usuário corresponde ao SID que está registrado no banco de dados. Essa verificação ajuda a prevenir a falsificação de logons do Windows no banco de dados.
A cláusula WITH LOGIN
permite o remapeamento de um usuário para um logon diferente. Os usuários sem um logon, mapeados para um certificado ou mapeados para uma chave assimétrica não podem ser remapeados com essa cláusula. Somente os usuários do SQL e do Windows (ou grupos) podem ser remapeados. A cláusula WITH LOGIN
não pode ser usada para alterar o tipo de usuário, como alterar uma conta do Windows para um logon do SQL Server.
Um SID não correspondente pode ocorrer quando você restaurar um banco de dados de outro servidor e tiver um usuário de banco de dados mapeado para um logon do SQL Server. Você pode usar a cláusula WITH LOGIN
para corrigir essa situação substituindo o SID do usuário no banco de dados pelo SID de logon do servidor.
O nome do usuário será renomeado automaticamente para o nome de logon se as condições a seguir forem verdadeiras.
O usuário é um usuário do Windows.
O nome é um nome do Windows (contém uma barra invertida).
Nenhum novo nome foi especificado.
O nome atual difere do nome de logon.
Caso contrário, o usuário não será renomeado, a menos que o chamador invoque adicionalmente a cláusula NAME
.
O nome de um usuário mapeado para um logon do SQL Server, um certificado ou uma chave assimétrica não pode conter o caractere de barra invertida (\
).
Cuidado
A partir do SQL Server 2005, o comportamento de esquemas mudou. Como resultado, o código que pressupõe que esquemas sejam equivalentes a usuários de banco de dados pode não retornar mais resultados corretos. Exibições do catálogo antigas, incluindo sysobjects, não devem ser usadas em um banco de dados no qual uma das instruções DDL a seguir já tenha sido utilizada: 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. Nesses bancos de dados você deve usar as exibições do catálogo novas. As exibições do catálogo novas levam em conta a separação de entidades e esquemas apresentada no SQL Server 2005. Para mais informações sobre exibições do catálogo, consulte Exibições do catálogo (Transact-SQL).
Observação
Um usuário com a permissão ALTER ANY USER pode alterar o esquema padrão de qualquer usuário. Um usuário que tenha um esquema alterado pode, sem perceber, selecionar dados da tabela incorreta ou executar código do esquema incorreto.
Para alterar o nome de um usuário requer a permissão ALTER ANY USER.
Alterar o logon de um usuário de destino requer a permissão CONTROL no banco de dados.
Para alterar um nome de usuário que tenha a permissão CONTROL no banco de dados, é necessário ter a permissão CONTROL no banco de dados.
Para alterar o esquema ou idioma padrão, é necessário ter a permissão ALTER no usuário. Os usuários podem alterar seu próprio esquema ou idioma padrão.
Todos os exemplos são executados em um banco de dados do usuário.
O exemplo a seguir altera o nome do usuário do banco de dados Mary5
para Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
O exemplo a seguir altera o esquema padrão do usuário Mary51
para Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
Aplica-se a: SQL Server 2012 (11.x) e versões posteriores.
O exemplo a seguir altera várias opções para um usuário de banco de dados contido em uma instrução. Substitua <new strong password here>
e <old strong password here>
pelos seus próprios valores.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>'
, DEFAULT_LANGUAGE= French ;
GO
O exemplo a seguir corrige o SID do usuário no banco de dados para corresponder ao SID no servidor para um logon autenticado do SQL Server.
ALTER USER Mai
WITH LOGIN = Mai;
GO
* Banco de Dados SQL do Azure e Microsoft Fabric *
Sintaxe do Banco de Dados SQL do Azure
-- 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
Sintaxe para banco de dados SQL no 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
[;]
Sintaxe do Microsoft Fabric Warehouse
-- Syntax for Fabric Data Warehouse
ALTER USER user_name
WITH <set_item> [ ,...n ]
<set_item> ::=
| DEFAULT_SCHEMA = schema_name
[;]
Especifica o nome pelo qual o usuário é identificado nesse banco de dados.
Mapeia novamente um usuário para outro logon alterando o SID (identificador de segurança) do usuário para corresponder ao SID do logon.
Se a instrução ALTER USER for a única instrução em um lote SQL, o Banco de Dados SQL do Azure oferecerá suporte à cláusula WITH LOGIN
. Se a instrução ALTER USER não for a única instrução em um lote SQL ou for executada no SQL dinâmico, não há suporte para a cláusula WITH LOGIN
.
Especifica o novo nome para o usuário. new_user_name ainda não deve existir no banco de dados atual.
Especifica o primeiro esquema que será pesquisado pelo servidor quando ele resolver os nomes de objetos para este usuário.
Definir o esquema padrão como NULL
remove um esquema padrão de um usuário criado para um grupo de IDs do Microsoft Entra. A opção NULL não pode ser usada com nenhum outro tipo de usuário.
aplica-se a: Banco de Dados SQL do Azure.
Especifica a senha do logon do usuário que está sendo alterado. As senhas diferenciam maiúsculas de minúsculas.
Observação
Essa opção está disponível apenas para usuários contidos. Confira mais informações em Bancos de dados independentes e sp_migrate_user_to_contained (Transact-SQL).
aplica-se a: Banco de Dados SQL do Azure.
A senha do usuário atual que será substituída por 'password'. As senhas diferenciam maiúsculas de minúsculas. OLD_PASSWORD é necessária para alterar uma senha, a menos que você tenha a permissão ALTER ANY USER. Exigir OLD_PASSWORD impede que os usuários com a permissão IMPERSONATION alterem a senha.
Observação
Essa opção está disponível apenas para usuários contidos.
aplica-se a: SQL Server 2016 (13.x) e versões posteriores, Banco de Dados SQL do Azure.
Suprime as verificações de metadados criptográficos no servidor em operações de cópia em massa. Isso permite que o usuário copie em massa dados criptografados entre tabelas ou bancos de dados sem descriptografá-los. O padrão é OFF.
Aviso
O uso inadequado dessa opção pode resultar em dados corrompidos. Para obter mais informações, consulte carregar dados criptografados em massa em colunas usando o Always Encrypted.
O esquema padrão será o primeiro esquema que será pesquisado pelo servidor ao resolver os nomes dos objetos para esse usuário de banco de dados. A não ser quando especificado de outra forma, o esquema padrão será o proprietário dos objetos criados pelo usuário de banco de dados.
Se o usuário tiver um esquema padrão, esse esquema padrão será usado. Se o usuário não tiver um esquema padrão, mas for um membro de um grupo que tenha um esquema padrão, o esquema do grupo será usado. Se o usuário não tiver um esquema padrão e for membro de mais de um grupo, o esquema padrão para o usuário será o do grupo com o menor principal_id
e um esquema padrão definido explicitamente. Se nenhum esquema padrão puder ser determinado para um usuário, o esquema dbo
será usado.
DEFAULT_SCHEMA pode ser definido como um esquema que não ocorre atualmente no banco de dados. Portanto, você pode atribuir um DEFAULT_SCHEMA a um usuário antes de o esquema ser criado.
Não é possível especificar DEFAULT_SCHEMA para um usuário que esteja mapeado para um certificado ou uma chave assimétrica.
Importante
O valor de DEFAULT_SCHEMA será ignorado se o usuário for membro da função de servidor fixa sysadmin. Todos os membros da função de servidor fixa sysadmin têm um esquema padrão de dbo
.
A cláusula WITH LOGIN
permite o remapeamento de um usuário para um logon diferente. Os usuários sem um logon, mapeados para um certificado ou mapeados para uma chave assimétrica não podem ser remapeados com essa cláusula. Somente os usuários do SQL podem ser remapeados. A cláusula WITH LOGIN
não pode ser usada para alterar o tipo de usuário.
O nome do usuário será renomeado automaticamente para o nome de logon se as condições a seguir forem verdadeiras.
Nenhum novo nome foi especificado.
O nome atual difere do nome de logon.
Caso contrário, o usuário não será renomeado, a menos que o chamador invoque adicionalmente a cláusula NAME
.
O nome de um usuário mapeado para um logon do SQL Server, um certificado ou uma chave assimétrica não pode conter o caractere de barra invertida (\
).
Cuidado
A partir do SQL Server 2005, o comportamento de esquemas mudou. Como resultado, o código que pressupõe que esquemas sejam equivalentes a usuários de banco de dados pode não retornar mais resultados corretos. Exibições do catálogo antigas, incluindo sysobjects, não devem ser usadas em um banco de dados no qual uma das instruções DDL a seguir já tenha sido utilizada: 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. Nesses bancos de dados você deve usar as exibições do catálogo novas. As exibições do catálogo novas levam em conta a separação de entidades e esquemas apresentada no SQL Server 2005. Para mais informações sobre exibições do catálogo, consulte Exibições do catálogo (Transact-SQL).
Para obter mais informações, consulte:
No Microsoft Fabric Warehouse, ALTER USER é limitado a definir apenas o esquema padrão. Quaisquer outros argumentos comumente associados ao ALTER USER no SQL ou em outros produtos não têm suporte e retornarão um erro.
No Microsoft Fabric Warehouse, o nome da ordenação diferencia maiúsculas de minúsculas.
O esquema padrão será o primeiro esquema que será pesquisado pelo servidor ao resolver os nomes dos objetos para esse usuário de banco de dados. A não ser quando especificado de outra forma, o esquema padrão será o proprietário dos objetos criados pelo usuário de banco de dados.
Se um usuário tiver um esquema padrão, esse esquema será usado. Se nenhum esquema padrão for especificado, o esquema dbo será aplicado. O mecanismo de banco de dados primeiro tentará resolver objetos no esquema padrão do usuário. Se nenhum objeto correspondente for encontrado, ele verificará o esquema dbo.
DEFAULT_SCHEMA pode ser definido como um esquema que não existe atualmente no banco de dados. Portanto, você pode atribuir um DEFAULT_SCHEMA a um usuário antes de o esquema ser criado.
Para obter mais informações, consulte:
Observação
Um usuário com a permissão ALTER ANY USER pode alterar o esquema padrão de qualquer usuário. Um usuário que tenha um esquema alterado pode, sem perceber, selecionar dados da tabela incorreta ou executar código do esquema incorreto.
Para alterar o nome de um usuário requer a permissão ALTER ANY USER.
Alterar o logon de um usuário de destino requer a permissão CONTROL no banco de dados.
Para alterar um nome de usuário que tenha a permissão CONTROL no banco de dados, é necessário ter a permissão CONTROL no banco de dados.
Para alterar o esquema ou idioma padrão, é necessário ter a permissão ALTER no usuário. Os usuários podem alterar seu próprio esquema ou idioma padrão.
Os usuários com um mínimo de associação de função COLABORADOR no workspace podem alterar o ESQUEMA PADRÃO de qualquer usuário no Fabric Data Warehouse.
Os usuários com associação de função VIEWER no workspace não podem alterar seu próprio esquema padrão, a menos que um usuário com acesso elevado conceda essa permissão.
Os usuários incluídos na função VIEWER no nível do workspace exigem a permissão ALTER ANY USER para alterar o esquema padrão de outros usuários.
Todos os exemplos são executados em um banco de dados do usuário.
O exemplo a seguir altera o nome do usuário do banco de dados Mary5
para Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
O exemplo a seguir altera o esquema padrão do usuário Mary51
para Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
O exemplo a seguir altera várias opções para um usuário de banco de dados contido em uma instrução. Substitua <new strong password here>
e <old strong password here>
pelos seus próprios valores.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>';
GO
O exemplo a seguir altera o esquema padrão do usuário Mary51
para Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
* Instância Gerenciada de SQL *
Importante
Somente as seguintes opções têm suporte para a Instância Gerenciada de SQL do Azure ao aplicar a usuários com logons do Microsoft Entra: DEFAULT_SCHEMA = { schema_name | NULL }
e Há uma nova extensão de sintaxe DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }
que foi adicionada para ajudar a remapear usuários em um banco de dados que foi migrado para a Instância Gerenciada de SQL do Azure. A sintaxe ALTER USER ajuda a mapear usuários de banco de dados em um domínio federado e sincronizado com a ID do Microsoft Entra para logons do 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> }
Especifica o nome pelo qual o usuário é identificado nesse banco de dados.
Mapeia novamente um usuário para outro logon alterando o SID (identificador de segurança) do usuário para corresponder ao SID do logon.
Se a instrução ALTER USER for a única instrução em um lote SQL, o Banco de Dados SQL do Azure oferecerá suporte à cláusula WITH LOGIN
. Se a instrução ALTER USER não for a única instrução em um lote SQL ou for executada no SQL dinâmico, não há suporte para a cláusula WITH LOGIN
.
Especifica o novo nome para o usuário. new_user_name ainda não deve existir no banco de dados atual.
Especifica o primeiro esquema que será pesquisado pelo servidor quando ele resolver os nomes de objetos para este usuário. A configuração do esquema padrão como NULL remove um esquema padrão de um grupo do Windows. A opção NULL não pode ser usada com um usuário do Windows.
Especifica a senha do logon do usuário que está sendo alterado. As senhas diferenciam maiúsculas de minúsculas.
Observação
Essa opção está disponível apenas para usuários contidos. Confira mais informações em Bancos de dados independentes e sp_migrate_user_to_contained (Transact-SQL).
A senha do usuário atual que será substituída por 'password'. As senhas diferenciam maiúsculas de minúsculas. OLD_PASSWORD é necessária para alterar uma senha, a menos que você tenha a permissão ALTER ANY USER. Exigir OLD_PASSWORD impede que os usuários com a permissão IMPERSONATION alterem a senha.
Observação
Essa opção está disponível apenas para usuários contidos.
Especifica um idioma padrão a ser atribuído ao usuário. Se essa opção não for definida como NONE, o idioma padrão será definido como o idioma padrão do banco de dados. Se o idioma padrão do banco de dados for alterado mais tarde, o idioma padrão do usuário permanecerá inalterado. DEFAULT_LANGUAGE pode ser a lcid (ID local), o nome do idioma ou o alias do idioma.
Observação
Essa opção só pode ser especificada em um banco de dados independente e somente para usuários independentes.
Suprime as verificações de metadados criptográficos no servidor em operações de cópia em massa. Isso permite que o usuário copie em massa dados criptografados entre tabelas ou bancos de dados sem descriptografá-los. O padrão é OFF.
Aviso
O uso inadequado dessa opção pode resultar em dados corrompidos. Para obter mais informações, consulte carregar dados criptografados em massa em colunas usando o Always Encrypted.
O esquema padrão será o primeiro esquema que será pesquisado pelo servidor ao resolver os nomes dos objetos para esse usuário de banco de dados. A não ser quando especificado de outra forma, o esquema padrão será o proprietário dos objetos criados pelo usuário de banco de dados.
Se o usuário tiver um esquema padrão, esse esquema padrão será usado. Se o usuário não tiver um esquema padrão, mas for um membro de um grupo que tenha um esquema padrão, o esquema do grupo será usado. Se o usuário não tiver um esquema padrão e for membro de mais de um grupo, o esquema padrão do usuário será o do grupo do Windows com o menor principal_id e um esquema padrão definido explicitamente. Se nenhum esquema padrão puder ser determinado para um usuário, o esquema dbo
será usado.
DEFAULT_SCHEMA pode ser definido como um esquema que não ocorre atualmente no banco de dados. Portanto, você pode atribuir um DEFAULT_SCHEMA a um usuário antes de o esquema ser criado.
Não é possível especificar DEFAULT_SCHEMA para um usuário que esteja mapeado para um certificado ou uma chave assimétrica.
Importante
O valor de DEFAULT_SCHEMA será ignorado se o usuário for membro da função de servidor fixa sysadmin. Todos os membros da função de servidor fixa sysadmin têm um esquema padrão de dbo
.
É possível alterar o nome de um usuário que esteja mapeado para um grupo ou logon do Windows somente quando o SID do novo nome de usuário corresponde ao SID que está registrado no banco de dados. Essa verificação ajuda a prevenir a falsificação de logons do Windows no banco de dados.
A cláusula WITH LOGIN
permite o remapeamento de um usuário para um logon diferente. Os usuários sem um logon, mapeados para um certificado ou mapeados para uma chave assimétrica não podem ser remapeados com essa cláusula. Somente os usuários do SQL e do Windows (ou grupos) podem ser remapeados. A cláusula WITH LOGIN
não pode ser usada para alterar o tipo de usuário, como alterar uma conta do Windows para um logon do SQL Server. A única exceção é ao alterar um usuário do Windows para um usuário do Microsoft Entra.
Observação
As regras a seguir não se aplicam aos usuários do Windows na Instância Gerenciada de SQL do Azure, pois não damos suporte à criação de logons do Windows na Instância Gerenciada de SQL do Azure. A opção WITH LOGIN só pode ser usada se os logins do Microsoft Entra estiverem presentes.
O nome do usuário será renomeado automaticamente para o nome de logon se as condições a seguir forem verdadeiras.
O usuário é um usuário do Windows.
O nome é um nome do Windows (contém uma barra invertida).
Nenhum novo nome foi especificado.
O nome atual difere do nome de logon.
Caso contrário, o usuário não será renomeado, a menos que o chamador invoque adicionalmente a cláusula NAME
.
O nome de um usuário mapeado para um logon do SQL Server, um certificado ou uma chave assimétrica não pode conter o caractere de barra invertida (\
).
Cuidado
A partir do SQL Server 2005, o comportamento de esquemas mudou. Como resultado, o código que pressupõe que esquemas sejam equivalentes a usuários de banco de dados pode não retornar mais resultados corretos. Exibições do catálogo antigas, incluindo sysobjects, não devem ser usadas em um banco de dados no qual uma das instruções DDL a seguir já tenha sido utilizada: 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. Nesses bancos de dados você deve usar as exibições do catálogo novas. As exibições do catálogo novas levam em conta a separação de entidades e esquemas apresentada no SQL Server 2005. Para mais informações sobre exibições do catálogo, consulte Exibições do catálogo (Transact-SQL).
Esses comentários se aplicam à autenticação como usuários do Windows que foram federados e sincronizados com a ID do Microsoft Entra.
SELECT * FROM sys.server_principals;
.E
ou X
.FROM EXTERNAL PROVIDER
é para alterar usuários e grupos do Windows do SQL local para usuários e grupos do Microsoft Entra. O domínio do Windows deve ser federado com a ID do Microsoft Entra e todos os membros do domínio do Windows devem existir na ID do Microsoft Entra ao usar essa extensão. A sintaxe FROM EXTERNAL PROVIDER
se aplica à Instância Gerenciada de SQL do Azure e deve ser usada caso os usuários do Windows não tenham logons na instância original do SQL e precisem ser mapeados para usuários autônomos do banco de dados do Microsoft Entra.user_name
permitido pode ser:domain\user
).MyWindowsGroup
).MyWindowsAlias
).user_name
antigo pelo nome correspondente encontrado na ID do Microsoft Entra com base no SID original do user_name
antigo. O nome alterado é substituído e armazenado nos metadados do banco de dados:domain\user
) será substituído pelo Microsoft Entra user@domain.com
.domain\MyWindowsGroup
) será substituído pelo grupo Microsoft Entra.MyWindowsAlias
) permanecerá inalterado, mas o SID desse usuário será verificado na ID do Microsoft Entra.Observação
Se o SID do usuário original convertido em object_ID
não puder ser encontrado no locatário da ID do Microsoft Entra, o comando ALTER USER
falhará.
SELECT * FROM sys.database_principals;
E
ou X
.Observação
Um usuário com a permissão ALTER ANY USER pode alterar o esquema padrão de qualquer usuário. Um usuário que tenha um esquema alterado pode, sem perceber, selecionar dados da tabela incorreta ou executar código do esquema incorreto.
Para alterar o nome de um usuário requer a permissão ALTER ANY USER.
Alterar o logon de um usuário de destino requer a permissão CONTROL no banco de dados.
Para alterar um nome de usuário que tenha a permissão CONTROL no banco de dados, é necessário ter a permissão CONTROL no banco de dados.
Para alterar o esquema ou idioma padrão, é necessário ter a permissão ALTER no usuário. Os usuários podem alterar seu próprio esquema ou idioma padrão.
Todos os exemplos são executados em um banco de dados do usuário.
O exemplo a seguir altera o nome do usuário do banco de dados Mary5
para Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
O exemplo a seguir altera o esquema padrão do usuário Mary51
para Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
O exemplo a seguir altera várias opções para um usuário de banco de dados contido em uma instrução. Substitua <new strong password here>
e <old strong password here>
pelos seus próprios valores.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>'
, DEFAULT_LANGUAGE= French ;
GO
O exemplo a seguir remapeia o usuário westus/joe
para um usuário do Microsoft Entra, joe@westus.com
. Este exemplo é para logons que já existem na instância gerenciada. Isso precisa ser executado depois que você concluir uma migração de banco de dados para a Instância Gerenciada de SQL do Azure e quiser usar o logon do Microsoft Entra para autenticar.
ALTER USER [westus/joe] WITH LOGIN = [joe@westus.com]
O exemplo a seguir remapeia o usuário, westus/joe
sem um logon, para um usuário do Microsoft Entra, joe@westus.com
. O usuário federado deve existir na ID do Microsoft Entra.
ALTER USER [westus/joe] FROM EXTERNAL PROVIDER
O exemplo a seguir remapeia o nome do usuário, de westus\joe
para joe_alias
. O login correspondente do Microsoft Entra neste caso é joe@westus.com
.
ALTER USER [westus/joe] WITH LOGIN = [joe@westus.com], name= joe_alias
O exemplo a seguir remapeia o grupo westus\mygroup
local antigo para um grupo mygroup
do Microsoft Entra na instância gerenciada. O grupo deve existir na ID do Microsoft Entra.
ALTER USER [westus\mygroup] WITH LOGIN = mygroup;
* Azure Synapse
Analytics *
-- 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
[;]
Especifica o nome pelo qual o usuário é identificado nesse banco de dados.
Mapeia novamente um usuário para outro logon alterando o SID (identificador de segurança) do usuário para corresponder ao SID do logon.
Se a instrução ALTER USER for a única instrução em um lote SQL, o Banco de Dados SQL do Azure oferecerá suporte à cláusula WITH LOGIN
. Se a instrução ALTER USER não for a única instrução em um lote SQL ou for executada no SQL dinâmico, não há suporte para a cláusula WITH LOGIN
.
Especifica o novo nome para o usuário. new_user_name ainda não deve existir no banco de dados atual.
Especifica o primeiro esquema que será pesquisado pelo servidor quando ele resolver os nomes de objetos para este usuário. A configuração do esquema padrão como NULL remove um esquema padrão de um grupo do Windows. A opção NULL não pode ser usada com um usuário do Windows.
O esquema padrão será o primeiro esquema que será pesquisado pelo servidor ao resolver os nomes dos objetos para esse usuário de banco de dados. A não ser quando especificado de outra forma, o esquema padrão será o proprietário dos objetos criados pelo usuário de banco de dados.
Se o usuário tiver um esquema padrão, esse esquema padrão será usado. Se o usuário não tiver um esquema padrão, mas for um membro de um grupo que tenha um esquema padrão, o esquema do grupo será usado. Se o usuário não tiver um esquema padrão e for membro de mais de um grupo, o esquema padrão do usuário será o do grupo do Windows com o menor principal_id e um esquema padrão definido explicitamente. Se nenhum esquema padrão puder ser determinado para um usuário, o esquema dbo
será usado.
DEFAULT_SCHEMA pode ser definido como um esquema que não ocorre atualmente no banco de dados. Portanto, você pode atribuir um DEFAULT_SCHEMA a um usuário antes de o esquema ser criado.
Não é possível especificar DEFAULT_SCHEMA para um usuário que esteja mapeado para um certificado ou uma chave assimétrica.
Importante
O valor de DEFAULT_SCHEMA será ignorado se o usuário for membro da função de servidor fixa sysadmin. Todos os membros da função de servidor fixa sysadmin têm um esquema padrão de dbo
.
A cláusula WITH LOGIN
permite o remapeamento de um usuário para um logon diferente. Os usuários sem um logon, mapeados para um certificado ou mapeados para uma chave assimétrica não podem ser remapeados com essa cláusula. Somente os usuários do SQL e do Windows (ou grupos) podem ser remapeados. A cláusula WITH LOGIN
não pode ser usada para alterar o tipo de usuário, como alterar uma conta do Windows para um logon do SQL Server.
O nome do usuário será renomeado automaticamente para o nome de logon se as condições a seguir forem verdadeiras.
Nenhum novo nome foi especificado.
O nome atual difere do nome de logon.
Caso contrário, o usuário não será renomeado, a menos que o chamador invoque adicionalmente a cláusula NAME
.
O nome de um usuário mapeado para um logon do SQL Server, um certificado ou uma chave assimétrica não pode conter o caractere de barra invertida (\
).
Cuidado
A partir do SQL Server 2005, o comportamento de esquemas mudou. Como resultado, o código que pressupõe que esquemas sejam equivalentes a usuários de banco de dados pode não retornar mais resultados corretos. Exibições do catálogo antigas, incluindo sysobjects, não devem ser usadas em um banco de dados no qual uma das instruções DDL a seguir já tenha sido utilizada: 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. Nesses bancos de dados você deve usar as exibições do catálogo novas. As exibições do catálogo novas levam em conta a separação de entidades e esquemas apresentada no SQL Server 2005. Para mais informações sobre exibições do catálogo, consulte Exibições do catálogo (Transact-SQL).
Observação
Um usuário com a permissão ALTER ANY USER pode alterar o esquema padrão de qualquer usuário. Um usuário que tenha um esquema alterado pode, sem perceber, selecionar dados da tabela incorreta ou executar código do esquema incorreto.
Para alterar o nome de um usuário requer a permissão ALTER ANY USER.
Alterar o logon de um usuário de destino requer a permissão CONTROL no banco de dados.
Para alterar um nome de usuário que tenha a permissão CONTROL no banco de dados, é necessário ter a permissão CONTROL no banco de dados.
Para alterar o esquema ou idioma padrão, é necessário ter a permissão ALTER no usuário. Os usuários podem alterar seu próprio esquema ou idioma padrão.
Todos os exemplos são executados em um banco de dados do usuário.
O exemplo a seguir altera o nome do usuário do banco de dados Mary5
para Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
O exemplo a seguir altera o esquema padrão do usuário Mary51
para Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
* Analytics
Platform System (PDW) *
-- 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
[;]
Especifica o nome pelo qual o usuário é identificado nesse banco de dados.
Mapeia novamente um usuário para outro logon alterando o SID (identificador de segurança) do usuário para corresponder ao SID do logon.
Se a instrução ALTER USER for a única instrução em um lote SQL, o Banco de Dados SQL do Azure oferecerá suporte à cláusula WITH LOGIN
. Se a instrução ALTER USER não for a única instrução em um lote SQL ou for executada no SQL dinâmico, não há suporte para a cláusula WITH LOGIN
.
Especifica o novo nome para o usuário. new_user_name ainda não deve existir no banco de dados atual.
Especifica o primeiro esquema que será pesquisado pelo servidor quando ele resolver os nomes de objetos para este usuário. A configuração do esquema padrão como NULL remove um esquema padrão de um grupo do Windows. A opção NULL não pode ser usada com um usuário do Windows.
O esquema padrão será o primeiro esquema que será pesquisado pelo servidor ao resolver os nomes dos objetos para esse usuário de banco de dados. A não ser quando especificado de outra forma, o esquema padrão será o proprietário dos objetos criados pelo usuário de banco de dados.
Se o usuário tiver um esquema padrão, esse esquema padrão será usado. Se o usuário não tiver um esquema padrão, mas for um membro de um grupo que tenha um esquema padrão, o esquema do grupo será usado. Se o usuário não tiver um esquema padrão e for membro de mais de um grupo, o esquema padrão do usuário será o do grupo do Windows com o menor principal_id e um esquema padrão definido explicitamente. Se nenhum esquema padrão puder ser determinado para um usuário, o esquema dbo
será usado.
DEFAULT_SCHEMA pode ser definido como um esquema que não ocorre atualmente no banco de dados. Portanto, você pode atribuir um DEFAULT_SCHEMA a um usuário antes de o esquema ser criado.
Não é possível especificar DEFAULT_SCHEMA para um usuário que esteja mapeado para um certificado ou uma chave assimétrica.
Importante
O valor de DEFAULT_SCHEMA será ignorado se o usuário for membro da função de servidor fixa sysadmin. Todos os membros da função de servidor fixa sysadmin têm um esquema padrão de dbo
.
A cláusula WITH LOGIN
permite o remapeamento de um usuário para um logon diferente. Os usuários sem um logon, mapeados para um certificado ou mapeados para uma chave assimétrica não podem ser remapeados com essa cláusula. Somente os usuários do SQL e do Windows (ou grupos) podem ser remapeados. A cláusula WITH LOGIN
não pode ser usada para alterar o tipo de usuário, como alterar uma conta do Windows para um logon do SQL Server.
O nome do usuário será renomeado automaticamente para o nome de logon se as condições a seguir forem verdadeiras.
Nenhum novo nome foi especificado.
O nome atual difere do nome de logon.
Caso contrário, o usuário não será renomeado, a menos que o chamador invoque adicionalmente a cláusula NAME
.
O nome de um usuário mapeado para um logon do SQL Server, um certificado ou uma chave assimétrica não pode conter o caractere de barra invertida (\
).
Cuidado
A partir do SQL Server 2005, o comportamento de esquemas mudou. Como resultado, o código que pressupõe que esquemas sejam equivalentes a usuários de banco de dados pode não retornar mais resultados corretos. Exibições do catálogo antigas, incluindo sysobjects, não devem ser usadas em um banco de dados no qual uma das instruções DDL a seguir já tenha sido utilizada: 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. Nesses bancos de dados você deve usar as exibições do catálogo novas. As exibições do catálogo novas levam em conta a separação de entidades e esquemas apresentada no SQL Server 2005. Para mais informações sobre exibições do catálogo, consulte Exibições do catálogo (Transact-SQL).
Observação
Um usuário com a permissão ALTER ANY USER pode alterar o esquema padrão de qualquer usuário. Um usuário que tenha um esquema alterado pode, sem perceber, selecionar dados da tabela incorreta ou executar código do esquema incorreto.
Para alterar o nome de um usuário requer a permissão ALTER ANY USER.
Alterar o logon de um usuário de destino requer a permissão CONTROL no banco de dados.
Para alterar um nome de usuário que tenha a permissão CONTROL no banco de dados, é necessário ter a permissão CONTROL no banco de dados.
Para alterar o esquema ou idioma padrão, é necessário ter a permissão ALTER no usuário. Os usuários podem alterar seu próprio esquema ou idioma padrão.
Todos os exemplos são executados em um banco de dados do usuário.
O exemplo a seguir altera o nome do usuário do banco de dados Mary5
para Mary51
.
ALTER USER Mary5 WITH NAME = Mary51;
GO
O exemplo a seguir altera o esquema padrão do usuário Mary51
para Purchasing
.
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO
Eventos
31 de mar., 23 - 2 de abr., 23
O maior evento de aprendizado de SQL, Fabric e Power BI. 31 de março a 2 de abril. Use o código FABINSIDER para economizar $ 400.
Registre-se hoje mesmo