Remote DAC engedélyezése

Ez egy olyan beállítás, ami nagyon hasznos tud lenni, 99%-ban be is állítom egy-egy új SQL Server telepítése során.

Mi az a DAC?

A DAC a Dedicated Administrator Connection rövidítése. Ezt olyankor használom, amikor:

  • olyan rendszer táblát akarok elérni, amit másképpen nem lehet. Ezek általában valamilyen nem dokumentált/támogatott esetek.
  • más módon nem érhető el az SQL Server, mert úgy tűnik nem válaszol, illetve annyira sok erőforrást használ egy vagy több lekérdezés miatt, hogy a hiba felderítése csak ezen lehetséges.

Utóbbi eset a leggyakoribb, mivel a DAC garantálja, hogy nagy terhelés mellett is elérhető és lekérdezhető - korlátok mellett - az SQL Server. 

Hogyan kell beállítani?

Ha nem szükséges távolról elérni, akkor semmi dolog nincs, de a távoli beállításhoz két dologra is szükség van:

  1. Engedélyezni kell a remote DAC-ot.
  2. Tűzfalon be kell állítani a DAC portját.

Az engedélyezés rém egyszerű, az alábbi kód segítségével:

EXEC sp_configure 'remote admin connections', 1
RECONFIGURE

Vajon melyik porton figyel a DAC? Ezt már egy kicsit bonyolultabb meghatározni. Alapvetően a TCP 1434-es porton figyel, ha az szabad a beállítás során. Ha nem, akkor az SQL Server Error Log-ban lesz benne:

Message
Dedicated admin connection support was established for listening remotely on port %i.

A %i helyén megadott portot kell majd a tűzfalon beállítani. 

Comments (2) -

  • Kovacs Zsolt

    8/16/2017 10:59:14 AM | Reply

    SQL Server 2008-tól megy egyszerűbben is:

    SELECT registry_key, value_name, value_data
    FROM sys.dm_server_registry  
    WHERE registry_key LIKE N'%MSSQLServer\SuperSocketNetLib\AdminConnection\Tcp';  

    • Kovacs Zsolt

      8/16/2017 11:04:54 AM | Reply

      Nem volt jó a where. Így:

      SELECT registry_key, value_name, value_data
      FROM sys.dm_server_registry  
      WHERE registry_key LIKE N'%\SuperSocketNetLib\AdminConnection\Tcp';

Add comment