Criar novo usuário ou editar - SQL SERVER
- Amanda Nascimento
- 13 de dez. de 2023
- 5 min de leitura
Atualizado: 1 de jun.
Como criar um novo usuário em um banco de dados SQL Server,
no seu banco, logado, clique com o botão direito no nome do servidor, e em
segurança, clique com o botão direito do mouse em Logons | Novo Logon...
Obs: Se deseja conectar este usuário em um servidor que esta em outra máquina, dentro da mesma rede, clique aqui para saber mais.
Em Geral, insira um nome de usuário, marque a opção de Autenticação do SQL Server e as outras opções de sua preferência.
Também é possível autenticar o usuário logado pelo windows e ou pelo Microsoft Entra ID (serviço de gerenciamento de identidade e acesso baseado na nuvem da Microsoft), podendo ser feita a autenticação multifator (MFA) ou autenticação única para aplicativos SaaS e locais.
Em mapeamento de usuário, selecione o banco de dados que esse usuário que criamos, terá acesso.
Após criar o usuário e configurar o acesso, é necessário reiniciar o sql server, para isso, abra o Sql Server Configuration Manager e clique em Serviços do SQL Server e depois, com o botão direito clique em reiniciar conforme imagem abaixo:

Criando um novo usuário via script
-- PRIMEIRA PARTE: Criar login no servidor (executar no master)
USE [master]
GO
-- 1. Cria o login (se não existir)
IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE name = 'usuario_g')
BEGIN
CREATE LOGIN [usuario_g]
WITH PASSWORD = 'senha123',
DEFAULT_DATABASE = [nomedatabase],
CHECK_EXPIRATION = OFF,
CHECK_POLICY = OFF -- Apenas para desenvolvimento
-- Para produção, defina como ON
END
GO
-- 2. Concede permissões de servidor (executar aqui mesmo no master)
GRANT CONTROL SERVER TO [usuario_g]
GO
-----------------------------------
-- SEGUNDA PARTE: Configurar acesso ao banco específico (executar no contexto do banco nomedatabase)
USE [nomedatabase]
GO
-- 3. Cria usuário mapeado para o login (se não existir)
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = 'usuario_g')
BEGIN
CREATE USER [usuario_g]
FOR LOGIN [usuario_g]
END
GO
-- 4. Concede papel de proprietário do banco de dados
EXEC sp_addrolemember 'db_owner', 'usuario_gilvieira'
GO
-- 5. Permissões explícitas adicionais (opcional)
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO [usuario_g]
GO
Para permitir alteração em produção:
ALTER LOGIN [usuario_g]
WITH CHECK_EXPIRATION = ON,
CHECK_POLICY = ON
Configurações de permissões
Para criar grupo ou incluir o usuário em um grupo existente, clique aqui para saber mais!
substituir user1 pelo nome do seu usuário
⏺ Permitir Apenas Leitura
EXEC sp_addrolemember 'db_datareader', 'user1'; GO
⏺ Permitir Apenas Escrita
EXEC sp_addrolemember 'db_datawriter', 'user1'; GO
⏺ Permitir apenas atualização
GRANT UPDATE ON NomeDaTabela TO user1; GO
⏺ Permitir Exclusão de Dados
para uma tabela específica:
GRANT DELETE ON NomeDaTabela TO user1; GO
para todas as tabelas:
GRANT DELETE TO user1; GO
⏺ Permitir CRUD Completo (Create, Read, Update, Delete)
EXEC sp_addrolemember 'db_datareader', 'user1'; EXEC sp_addrolemember 'db_datawriter', 'user1'; GO
⏺ Permitir exclusão de uma tabela específica GRANT DELETE ON NomeDaTabela TO user1; GO
⏺ Para verificar permissões do usuário
SELECT dp.name AS UserName, dp.type_desc AS UserType, o.name AS ObjectName, p.permission_name, p.state_desc FROM sys.database_permissions p JOIN sys.database_principals dp ON p.grantee_principal_id = dp.principal_id LEFT JOIN sys.objects o ON p.major_id = o.object_id WHERE dp.name = 'user1';
Possíveis erros e tratativas após criar login
Após criar o login e tentar logar e der certo, ok mas se aparecer o erro abaixo, será necessário ajustar uma configuração, pois na hora da instalação, não foi habilitado para este tipo de login.
Habilitando login autenticação do SQL Server e Windows
Com o usuário autenticado pelo windows (usuário admin do servidor que criei localmente), clico com o botão direito no servidor, e em propriedades:
Em Segurança, marco a opção de: "modo de Autenticação do SQL Server e do windows"

Abro o SQL Server Configuration

Clique com o botão direito no nome do seu servidor e clique em: Parar serviço
Iniciar Serviço
E ao voltar para o SGBD (management studio), e logar com o usuário que acabamos de criar e provavelmente irá funcionar.
Verificar se um login existe e esta habilitado
SELECT name, is_disabled FROM sys.server_principals
WHERE type_desc = 'SQL_LOGIN' AND name = 'usuario_g'
Se is_disabled = 1, habilite-o:
ALTER LOGIN [usuario_gilvieira] ENABLE
Alterar senha do usuário
ALTER LOGIN [usuario_g] WITH PASSWORD = 'NovaSenha!'
Desabilitar as políticas de senha
ALTER LOGIN [usuario_gilvieira]
WITH CHECK_EXPIRATION = OFF,
CHECK_POLICY = OFF
Erro de conexão, usuário não consegue conectar ao servidor
2º possibilidade de erro após os procedimentos acima:
------------------------------
Não é possível conectar-se a localhost\SQLEXPRESS.
------------------------------
INFORMAÇÕES ADICIONAIS:
A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - A cadeia de certificação foi emitida por uma autoridade que não é de confiança.) (Microsoft SQL Server, Erro: -2146893019)
Para obter ajuda, clique em: https://docs.microsoft.com/sql/relational-databases/errors-events/mssqlserver--2146893019-database-engine-error
------------------------------
A cadeia de certificação foi emitida por uma autoridade que não é de confiança
------------------------------
Para sanar isso, em Criptografia, marque como opcional.
Desabilitar a exigência de criptografia SSL/TLS pelo editor de registro
Se ainda assim não estiver conseguindo conectar, podemos desabilitar a exigência de criptografia SSL/TLS pelo editor de registro.
Primeiro passo, com o usuário logado por autenticação do windows, vamos certificar qual versão estamos utilizando:
Pressione Win + R para abrir a caixa de diálogo Executar e digite regedit e pressione Enter para abrir o Editor do Registro.
No Editor do Registro, navegue até o seguinte caminho:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQLServer\SuperSocketNetLib
No valor ForceEncryption, se já existir, altere ele para 0, se não existir o arquivo, crie clicando com o botão direito em novo, Valor DWORD (32 bits) e atribua o valor de 0 para desabilitar a exigência de criptografia SSL/TLS.
Reinicie e faça o teste, se ainda assim o problema persistir, pode ser as configurações do Firewall do Windows.
Erro ao logar no banco persiste
Abra o painel de controle do windows, Sistema e Segurança, Windows Defender Firewall, configurações avançadas, regra de entrada (lado esquerdo) e posterior, lado direito clica em "Nova Regra"
Selecione "Porta" como o tipo de regra e clique em "Avançar".
Especifique o número da porta usada pelo SQL Server. Por padrão, o SQL Server usa a porta TCP 1433 para conexões.
Selecione "Permitir a conexão" e clique em "Avançar".
Especifique quando a regra deve ser aplicada (público, privado ou domínio) e clique em "Avançar".
Após adicionar essa regra de entrada, o Firewall do Windows permitirá conexões na porta especificada pelo SQL Server. Certifique-se de testar a conexão novamente para ver se o problema foi resolvido.
TÍTULO: Conectar ao Servidor
------------------------------
Não é possível conectar-se a nomeservidor
------------------------------
INFORMAÇÕES ADICIONAIS:
Não é possível abrir o banco de dados padrão do usuário. Falha de logon.
Falha de logon do usuário 'user1'. (Microsoft SQL Server, Erro: 4064)
Para obter ajuda, clique em: https://docs.microsoft.com/sql/relational-databases/errors-events/mssqlserver-4064-database-engine-error
Criar login com autenticação windows
CREATE LOGIN [DOMINIO\usuario] FROM WINDOWS
WITH DEFAULT_DATABASE = [nomedatabase]
GO
USE [nomedatabase]
GO
CREATE USER [DOMINIO\usuario] FOR LOGIN [DOMINIO\usuario]
GO
EXEC sp_addrolemember 'db_owner', 'DOMINIO\usuario'
GO