Como criar um novo usuário em um banco de dados SQL Server
Em segurança, clique com o botão direito do mouse em Logons | Novo Logon...
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:
Configurações de permissões
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
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.
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, se for um banco de dados simples, 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 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
Databases no SQL SERVER e seus significados
🔸Master: Banco de dados mestre. Armazena sa informações de metadados de toda a instância, configurações do servidor, informações de todos os bancos da instância e as informações de inicialização.
🔸Model: É um guia ou um modelo para os bancos de dados que serão criados. Tipo um CTRL+C CTRL+ V para levar as configurações de backup, etc.
🔸Msdb: É um banco que armazena o serviço SQL "height" e o local onde são armazenados os dados. É usado para programação de alertas e jobs.
🔸Tempdb: Área de memória para retenção de objetos temporários ou conjunto de resultados de carater intermediário.