VERIFICAR SE USUÁRIO ESTÁ CADASTRADO SQL SERVER.
Olá galera, estou com um problema. Tenho que fazer um form que verifique se usuário esta cadastrado no Sql Server.
Pois antes de de abrir o software tem que verificar se usuário existe ou não cadastrado no servidor.
Sql Server 2019. Uso VB.net com Visual Studio 2022.
Agradeço de coração a ajuda de vocês. Obrigado :)
Pois antes de de abrir o software tem que verificar se usuário existe ou não cadastrado no servidor.
Sql Server 2019. Uso VB.net com Visual Studio 2022.
Agradeço de coração a ajuda de vocês. Obrigado :)
Tá meio confuso isso. Você se refere à usuário no banco? Ou um registro em uma tabela do banco?
Olá fera, Me refiro a usuário do banco, cadastrado no SQL server. :)
Muito simples:
select name as username,
create_date,
modify_date,
type_desc as type,
authentication_type_desc as authentication_type
from sys.database_principals
where type not in ('A', 'G', 'R', 'X')
and sid is not null
and name != 'guest'
order by username;
Ok fera, muito obrigado, vou fazer uns testes e ver se isso resolve meu problema. Obrigado :)
KERPLUNK , O chat GPT me passou esse código em VB.Net. Porem, dá um erro Dizendo que " O password_hash não existe na Tabela"
No caso o password_hash seria o nome do campo na tabela conde grava a senha. Poderia ver onde estou errando ou esquecendo de fazer? Obrigado, valeu fera. :)
-----------------------------------------------------------------------
Imports System.Data.SqlClient
Public Class Form1
Private connectionString As String = "suaConnectionString"
Private Function AutenticarUsuario(username As String, password As String) As Boolean
Dim query As String = "SELECT COUNT(*) FROM sys.server_principals WHERE name = @username AND password_hash = HASHBYTES('SHA2_512', @password)"
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(query, connection)
command.Parameters.AddWithValue("@username", username)
command.Parameters.AddWithValue("@password", password)
connection.Open()
Dim result As Integer = DirectCast(command.ExecuteScalar(), Integer)
If result > 0 Then
Return True
Else
Return False
End If
End Using
End Function
Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
Dim username As String = txtUsername.Text
Dim password As String = txtPassword.Text
If AutenticarUsuario(username, password) Then
MessageBox.Show("Usuário autenticado com sucesso!")
Else
MessageBox.Show("Usuário ou senha incorretos.")
End If
End Sub
End Class
No caso o password_hash seria o nome do campo na tabela conde grava a senha. Poderia ver onde estou errando ou esquecendo de fazer? Obrigado, valeu fera. :)
-----------------------------------------------------------------------
Imports System.Data.SqlClient
Public Class Form1
Private connectionString As String = "suaConnectionString"
Private Function AutenticarUsuario(username As String, password As String) As Boolean
Dim query As String = "SELECT COUNT(*) FROM sys.server_principals WHERE name = @username AND password_hash = HASHBYTES('SHA2_512', @password)"
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(query, connection)
command.Parameters.AddWithValue("@username", username)
command.Parameters.AddWithValue("@password", password)
connection.Open()
Dim result As Integer = DirectCast(command.ExecuteScalar(), Integer)
If result > 0 Then
Return True
Else
Return False
End If
End Using
End Function
Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
Dim username As String = txtUsername.Text
Dim password As String = txtPassword.Text
If AutenticarUsuario(username, password) Then
MessageBox.Show("Usuário autenticado com sucesso!")
Else
MessageBox.Show("Usuário ou senha incorretos.")
End If
End Sub
End Class
connectionString esta apontando para o banco de dados master, ao menos foi o que informou o ChatGPT, hehehehehe
Deixa eu ver se entendi: você faz uma pergunta, eu dou uma resposta, você vai em outra fonte e a resposta da outra fonte não está correta. Experimentou a query que eu passei? Peça no GPT pra consertar o campo inexistente, ou simplesmente tire ele da query.
Cara desculpe se te irritei, não foi intencional. Usei a sua query no SMSS, mas não pegou o nome de usuário. (Não sou bom em ralação a SQL)
E como quero fazer isso via código do VB.NET Recorri ao ChatGPT justamente pra não ficar enchendo muito o saco aqui. Mas agradeço o tempo que você perdeu comigo.
Mas uma vez reitero minha humilde Desculpa pelo ocorrido.
E como quero fazer isso via código do VB.NET Recorri ao ChatGPT justamente pra não ficar enchendo muito o saco aqui. Mas agradeço o tempo que você perdeu comigo.
Mas uma vez reitero minha humilde Desculpa pelo ocorrido.
Tópico encerrado , respostas não são mais permitidas