web-dev-qa-db-fra.com

Comment trouvons-nous qui a utilisé une connexion administrative dédiée

Y a-t-il un moyen de trouver qui a utilisé une connexion administrative dédiée?

Connexion non active mais la précédente qui est déjà fermée?

3
Santhoshkumar KB

SQL Server ne conserve pas cette information n'importe où; Si vous essayez d'attraper quelqu'un en abusant du CAD, vous supprimez la sysadmin des personnes qui ne devraient pas ne pas l'avoir, soit au moins une sorte de mécanisme de vote pour les attraper. Vous pouvez avoir une table comme celle-ci:

CREATE TABLE dbo.DBA_DacAccess
(
  ConnectTime      datetime,
  FirstObservance  datetime2 NOT NULL DEFAULT SYSUTCDATETIME(),
  LoginName        sysname,
  HostName         sysname,
  AppName          sysname,
  Interface        nvarchar(32),
  ClientNetAddress nvarchar(48)
);

Et ensuite déterminer un intervalle raisonnable pour collecter des informations sur une connexion DAC lorsque vous n'existe pas, puis exécutez ce qui suit à cette fréquence (à l'aide d'un travail d'agent SQL Server, probablement):

INSERT dbo.DBA_DacAccess
(
  ConnectTime, 
  LoginName, 
  HostName, 
  AppName, 
  Interface, 
  ClientNetAddress
)
SELECT 
  c.connect_time, 
  s.login_name, 
  s.[Host_name], 
  s.[program_name], 
  s.client_interface_name, 
  c.client_net_address
FROM sys.dm_exec_connections AS c 
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE c.endpoint_id = 1
AND NOT EXISTS 
(
  SELECT 1 FROM dbo.DBA_DacAccess 
  WHERE connect_time = c.connect_time
);

Cela fonctionnera à l'avenir, mais vous devez avoir la chance (ou sonder fréquemment) pour les attraper s'ils sont entrés et dehors rapidement, vous voudrez peut-être peauillir ce calendrier. En outre, au cas où vous vous demanderiez pourquoi ce n'est pas un LOGON TRIGGER, il y a deux raisons: (1) DAC contourne ceux-ci, par conception et nécessité, et (2) les lignes/données de ces DMV n'existeraient pas tant qu'ils échappent à la gâchette de toute façon.

Pour des événements dans le passé, et encore une fois, si vous êtes chanceux, les gens qui tentent d'accéder au CAD à partir de SSMS seront mordues par la connexion d'arrière-plan qui tente de se connecter à nouveau, car cette tentative ayant échoué sera écrite sur le journal des erreurs et le L'adresse IP est annexée à la fin du message (mais aucune des autres informations n'est incluse). Cela ne vous aidera pas si une personne utilisait un poste de travail à distance sur le serveur ou une application autre que les SSMS qui n'essayent pas d'établir des connexions supplémentaires en utilisant le même ADMIN: Les informations d'identification, mais devraient être utiles si elles utilisaient des SSMS à distance:

04/23/2018 08:11:18
Se connecter
Inconnu
Impossible de se connecter car le nombre maximum de connexions administratrice dédiées "1 'existe déjà. Avant de pouvoir effectuer une nouvelle connexion, la connexion administratrice dédiée existante doit être supprimée, soit en vous déconnectant ou en terminant le processus. [Client: 192.168.0.99]

16
Aaron Bertrand