Você deve estar neste momento pensando em algum em especifico, normalmente eu o conheço a primeiro momento como: .Net SqlClient Data Provider, Microsoft JDBC Driver for SQL Server, jDTS e vários outros. Um tanto quanto genérico não acham?
De onde eu estou tirando esses nomes? Do banco! Os SGBDs salvam algumas informações com relação a quem o esta acessando e uma dessas informações é o nome da aplicação.
Você pode verificar quais aplicações estão acessando seu banco verificando views de sistema. No SQL Server você pode usar a sys.dm_exec_sessions. Veja abaixo.
select s.session_id, s.host_name, s.login_name, s.program_name, s.status from sys.dm_exec_sessions s where program_name is not null
No Oracle pode ser feito usando a v$session.
SELECT sess.sid, sess.machine, sess.username, sess.state, sess.program FROM v$session sess WHERE sess.type = 'USER';
Mas por que as aplicações apresentam tais nomes? Esses nomes são inseridos quando o parâmetro não é informado no Connection String da aplicação. E essa é uma informação muito valiosa para os DBAs em vários cenários, sendo o mais simples deles saber de forma rápida a qual programa pertence aquela sessão.
Com SQL Server e .NET você pode fazer isso como pode ser visto no exemplo logo abaixo ou maiores informações em ApplicationName Property.
[...] using (SqlConnection con = new SqlConnection(@"Data Source=.\myinstance;Initial Catalog=master;User ID=myuser;Password=mypassword; Application Name= >>> apfsql Test Application <<<")) [...]
Com SQL Server e Java é feito como demonstrado no link Setting the Connection Properties JDBC for SQL Server. O mesmo pode ser feito também com outros SGBDs e linguagens de programação, é só dar uma pesquisada.
É algo relativamente simples e muito útil, se você é programador tente utilizar deste recurso; ou se tem amigos programadores, mostre isso a eles. 🙂