SQL üzerinden ...
 
Bildirimler
Hepsini Temizle

SQL üzerinden program çalıştırmak  

  RSS
Wickers
(@jhonwick)
Üye

Uzaktaki bilgisayarın SQL'ine 1433 portu ile kendi SSMS'imden IP numarasından giriş yapıp müdahalede bulunabiliyorum. Karşı taraftaki SQL'den bir program aracılığıyla benim kendi server'ımdaki SQL'ime veri geliyor. Bu program ara sıra tıkanıyor ve bağlantı kurmak bazı durumlarda sıkıntı olabiliyor, (teamviewer id ve pass gerekli olduğu için) ben uzaktaki bilgisayarıma kendi SSMS'imden bağlanıp orada hazırladığım bir .bat dosyasını çalıştırmalıyım. bat dosyasında da o programı kapatma ve açma kodları var ama onu bir seferlik çalıştıracağım kod veya bir yol lazım. Yardımcı olanlara şimdiden teşekkürler.

Alıntı
Gönderildi : 17/12/2014 18:18
oldmember
(@yavuzfilizlibay)
Üye

Merhaba

Xp_cmdshell ile yapabilirsiniz bunu. İlk önce xp_cmdshell i aşağıdaki gibi aktif ediyorsunuz,

EXEC sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXEC sp_configure 'xp_cmdshell', 1;
GO

RECONFIGURE;
GO

 

sonrasında aşağıda olduğu gibi batch dosyanızı çalıştırabilirsiniz.

EXEC master..xp_CMDShell 'c:batchdosyasi.bat' 

 

CevapAlıntı
Gönderildi : 17/12/2014 18:26
Wickers
(@jhonwick)
Üye

Yavuz Bey,

'c:test.bat' iç ya da dış komut, çalıştırılabilir

program ya da toplu iş dosyası olarak tanınmıyor.

NULL

SQL'de bat çalıştırma komutundan sonra bu çıktıyı alıyorum ve bat dosyası çalışmıyor.

 

xp_cmdshell aktif etme çıktısı da aşağıdaki gibidir;

Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install.

Configuration option 'xp_cmdshell' changed from 1 to 1. Run the RECONFIGURE statement to install.

 

CevapAlıntı
Gönderildi : 17/12/2014 19:04
oldmember
(@yavuzfilizlibay)
Üye

Şu şekilde dener misiniz

exec master..dbo.xp_cmdshell 'C:\test.bat' 

CevapAlıntı
Gönderildi : 17/12/2014 19:10
Wickers
(@jhonwick)
Üye

Yine bir hata ile karşılaştım, ekstra olarak sql serverda yapılması gereken bir schema ayarı veya kullanıcı ayarı/yetkisi olabilir mi sorun?

"Could not find server 'master' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers."

CevapAlıntı
Gönderildi : 17/12/2014 19:32
oldmember
(@yavuzfilizlibay)
Üye

Dışardan istek yaptığınız için kabul etmiyor olabilir. Server Object - Linked Server olarak eklerseniz büyük ihtimal kabul edecektir. Çünkü sys.servers a bakmış ve bulamamış.

Remote olarak linked server eklemek için aşağıdaki linkten faydalanabilirsiniz.

http://www.databasejournal.com/features/mssql/article.php/3691721/Setting-up-a-Linked-Server-for-a-Remote-SQL-Server-Instance.htm 

CevapAlıntı
Gönderildi : 18/12/2014 01:15
Wickers
(@jhonwick)
Üye

Bu işlemlerin güvenlik açısından zararı olur mu?

CevapAlıntı
Gönderildi : 19/12/2014 18:01
oldmember
(@yavuzfilizlibay)
Üye

Şu anki yapınız da zaten 1433 direk açık dışarıya, saldırı almanız yüksek bir ihtimal. Xp_cmdshell in dışarıdan kod çalıştrabilmesi güvenlik zafiyetlerine sebep verir.

CevapAlıntı
Gönderildi : 19/12/2014 18:04
Paylaş: