připojení k SQL serveru přes LAN   otázka

C#

Zdravím, chtěl jsem se zeptat jak se připojit k SQL serveru 2008 který běží v lokální síti. Propojil jsem si dva počítače pomocí lan kdy jeden pc na kterém běří server ma adresu třeba 192.168.2.1 a druhé PC na kterém běží aplikace která využívá databázi má adresu 192.168.2.2 a komunikují na portu 301. (jelikož nemám nainstalován SQL Server Browser tak bych ho nechtěl používat). jde mi o to kde nastavit pro komunikaci tento port a jak by potom vypadal v aplikaci connection string.

Díky za radu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Proč chcete nutit SQL Serveru nějaký ne-výchozí port? Není k tomu žádný důvod a mohlo by docházet k problémům. Navíc si nejsem jistý jestli to vůbec jde.

nahlásit spamnahlásit spam 0 / 2 odpovědětodpovědět

Dobře doporučujete tedy nastavit v SQL Server Configuration Manager (IPAll)TCP Port na 1433 a v aplikaci na druhém PC tedy přistupovat k databázi přes adresu 192.168.2.2,1433 ?

Děkuji za radu

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Doporučuji se vůbec nehrabat ve výchozím nastavení a k databázi se připojovat jen pomocí IP adresy nebo DNS názvu bez uvedení portu.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Port samozřejmě měnit lze a je k tomu celá řadu dobrých důvodů. Zgeneralizovat to celé na "Doporučuji se vůbec nehrabat ve výchozím nastavení" není podle mě ideální.

Důvody:

1) Máte více instancí SQL Serveru a nechcete otevírat port, který tyto instance identifikuje přes UDP pro SQL Server Browser. Každá instance má vlastní port jejich rozpoznání je tak jednoznačné a jasné. Rovnou víte dopředu, které porty se budou používat - výhoda při konfiguraci firewallu ve firmách, kde je otevírání portů delší proces.

2) Omylem nainstalujete SQL Server jako nedefaultní instanci a potřebujete změnit nastavení portu na defaultní 1433 port pro připojování bez uvedení portu nebo jména instance.

3) Máte SQL Server otevřený do internetu a chcete snížit pravděpodobnost využití případné bezpečnostní díry - je jasné, že hackeři budou tyto defaultní porty zkoušet. Tady je jednoznačná váhoda port změnit.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

1) Otevírat další port je bezpečnostní riziko a název instance je už sám o sobě jednoznačný identifikátor.

2) Souhlasím ale to je extrémní případ.

3) Nechat SQL Server otevřený do Internetu je totální nezodpovědnost (obzvlášť pokud jsou na něm nějaká citlivá data).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Co je špatného na otevření SQL Serveru do Internetu?

Pokud rozumně nastavíte práva a použijete rozumně dlouhé heslo, pak je to naprosto v pořádku.

HTTP server byste taky do Internetu raději nepustil? Vždyť je to to samé - lidi si mu řeknou o data a on jim je pošle.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

HTTP server je k tomu přímo určen, u SQL Serveru je to značné bezpečnostní riziko. Samozřejmě že když jsou v té databázi data pro e-shop a seznam produktů tak to může být každému jedno.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

1) A jak to chcete udělat bez druhého portu? Druhá instance si další port stejně otevře, jen je zvolený náhodně, takže nad ním nemáte kontrolu - o žádné bezpečnostní riziko nejde. Právě naopak - pokud máte pojmenovanou instanci, otevíráte navíc UDP port pro sdělování TCP portů, kde instance běží.

2) Extrémní to rozhodně není. Spousta klientů má nainstalovaný SQLEXPRESS v pojmenované instanci (defaultní instalace nejpoužívanější edice) a opět bez ruční konfigurace nemáte nad portem přehled.

3) To je věc názoru. Ne vždy máte zajištený přístup k serverům přes nějakou VPN a ne vždy je možné ho omezit na konkrétní IP adresy. Existuje obrovské množství případů v reálném provozu, kdy se toto používá. Jak chcete například přístupovat k SQL Serveru webhostingů? Ano, na data, která jsou považována za extrémně citlivá se může zvýšit bezpečnost odstřihnutím od internetu SQL Serveru nebo celého počítače.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dobrý den,

změnit port můžete podle informací v tomto článku:

http://vbnet.cz/clanek--141-stoparuv_pru...

V connection stringu pak pouze jméno počítače uvedete ve formátu:adresaServer,port

Je tady neobvyklé, že se port uvádí za čárku, nikoliv dvojtečku, jako je tomu zvykem v URL. Pokud uvedete port, není nikdy potřeba uvádět jméno instance za zpětné lomítko (ignorovalo by se).

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Děkuji za radu. Jeslti jsem to tedy pochopil dobře v tom článku tak musím pro můj případ nastvit v SQL Server Configuration Manager (IPAll)TCP Port na 1433 a v aplikaci na druhém PC tedy přistupovat k databázi přes adresu 192.168.2.2,1433 ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Přesně tak. Pokud ale přistupujete k defaultnímu portu (tedy 1433) nemusíte jej z klientského počítače ani uvádět, takže stačí například jen 192.168.2.2.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback