Nastavení MS SQL pro vzdálený přístup   otázka

SQL

Dobrý den,

snažím se nastavit MS SQL Server 2008 pro použití přes vzdálený přístup, částečně jsem se řídil podle tohoto návodu: http://www.vbnet.cz/clanek--141-stoparuv... , ale řeším problém s nastavením vlastností TCP/IP v Configuration Manageru. Mám totiž v záložce IP Addresses pouze jedinou adresu a to IP1 s localhostem, viz. http://i49.tinypic.com/2mhtr4j.png . Proto se chci zeptat, zda jde nějakým způsobem přidat další adresu (IP2, IP3...) nebo je možné přepsat tu stávající s localhostem?

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

Na lokálu se k SQL Serveru stejně nepřipojujete přes TCP/IP, takže můžete tu IP 1 změnit. Ale spíš doporučuji nastavit to IP All - je to jednodušší a nemusíte nic řešit. Ve většině případů to stačí.

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

Nastavil jsem tedy jen tu IP All na statický port TCP: 1433 a tu IP1 ponechal defaultně nastavenou, ale stejně se nemůžu z druhého PC připojit, při otevření adp souboru v DB Accessu mi to píše: odpojeno. Určitě tam ale mám jen něco špatně nastavené nebo jsem něco vynechal. TCP/IP, Named Pipes a Shared Memory mám jako Enabled, ve firewallu mám povolené porty pro TCP a UDP, ale nevím jestli je to správně, tady pro TCP: http://i49.tinypic.com/zj9raw.png a tady pro UDP: http://i45.tinypic.com/106ht9z.png , takhle je to nastavené pro jednotlivé soubory sqlservr.exe, sqladhlp90.exe, sqlbrowser.exe a sqlwriter plus jsou všechny 4 soubory zahrnuty ve výjímkách. Po nastavení toho statického portu jsem vytvořil instanci "jménoPočítače", ale všiml jsem si, že ve výše zmíněném článku se rozlišuje instance pro sdílenou paměť (jménoPočítače) a TCP/IP (JménoServeru). Jestli nebude chyba třeba zrovna v tomhle. Připojuji se pořád totiž pod názvem počítače UZIVATEL-NB nebo UZIVATEL,1433 , případně jako UZIVATEL-NB\SQLEXPRESS. Jenže nevím přesně, co si mám pod jménem serveru představit. Ještě by mě zajímalo, jestli třeba nemá nějaký vliv převod DB z Accessu na SQL server pod jiným názvem serveru? Původně jsem totiž nahodil DB na server UZIVATEL-NB\SQLEXPRESS, jenže jako název serveru pouze UZIVATEL-NB mi to Access nechce vzít, pak jsem to ale zkoušel ještě přes UZIVATEL-NB,1433 (připojení přes statický port) a to už mi Access vzal, ale stejně se opět nemůžu z jiného PC připojit. Při nastavení na dynamický port (0) při spuštěném SQL Server Browser se taktéž nejde připojit. Ještě mě napadá, jestli není potřeba něco povolit u druhého počítače, ze kterého se zkouším připojit na server?

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

Teoreticky to na obou strojích může blokovat firewall.

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

Taky bych nejdříve otestoval síťovou prostupnost.Zkuste z PC odkud se připojujete k DB spustit telnet na IP 1433.

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

Nejprve jsem tedy povolil ty porty pro TCP a UDP na PC, ze kterého se pokouším připojit na SQL, ale nepomohlo to, ani při nahrazení za Windows Firewall, ve kterém jsem ty porty taky povolil se nejde připojit. Snad jsem ten příkaz "telnet ip_adresa 1433" pochopil správně, kde za ip_adresa dosadím interní IP kterou získám z výpisu ipconfig. V takovém případě mi to na NB, kde mám spuštěný SQL server zobrazí prázdné okno, což by mělo znamenat, že je port prostupný, stejně se to zachová při spuštění "telnet localhost 1433". U druhého PC, ze kterého se snažím vzdáleně připojit mi to ve všech případech hlásí: "Could not open a connection to host on port 1433: Connect Failed…". Díval jsem se, co mi vypisuje netstat jako aktivní připojení na NB, kde mám SQL a tam je u řádku TCP uzivatel-nb:ms-sql-s zápis cizí adresy: uzivatel-nb:1833 a na dalším řádku port 1834. Neměl by tam být ten port 1433? Na druhou stranu, když spouštím Access nebo SQL server, tak se mě ptá firewall zda má povolit přístup pro vzdálený port 1433, takže by měl jak Access, tak server na tomto portu naslouchat. Ještě jsem si stáhnul program TCPView, ten už podává o něco víc informací a v reálném čase. Nevím, jestli tyto informace k něčemu jsou, ale u NB, kde mám spuštěný SQL hlásí pro sqlserver.exe protokol TCP, lokální adresu: ms-sql-s a pro Remote: 0, 1844 a 1847. Pro msaccess.exe pak protokol TCP, local address: 1844 a 1847 a Remote: ms-sql-s. Na druhém PC, ze kterého se snažím připojit mi to při spouštění a připojování DB v Accessu hlásí MSACCESS.EXE protokol UDP a postupně se snaží připojovat někde na 2730, 2860, 3270 atd. U těchto adres si nejsem jistý, jestli se jedná o porty, ale spíš se mi nezdá ten protokol UDP. Poslední věc, kterou jsem ověřoval byl výpis errorlogu SQL serveru, ale tam vypadá všechno v pořádku, server by měl podle tohoto: "Server is listening on [ 'any' <ipv4> 1433]" naslouchat na tomto portu.

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

Tak už jsem zřejmě našel příčinu. Zkusil jsem ještě vytvořit instanci s interní IP z toho výpisu ipconfig namísto toho uzivatel-nb,1433 znova nahrál DB na server a připojil se ze vzdáleného PC a zdá se, že dochází k připojení, už to ani nehlásí server nenalezen, za to se objevil nový problém a to s přihlášením. :-/ Hlásí mi to: "Login failed for user ". The user is not associated with a trusted sql server connection." Shodou náhod už se zde tento problém řešil: http://www.vbnet.cz/forum-tema--2219-con... ale nevím, jak se v Accessu přihlásit pod tím uživatelem, snad jen pomocí nějakého connection string, ke kterému se v Accessu neumím dostat. Databázi totiž ještě nemám zabezpečenou, takže při spouštění Accessu žádného uživatele ani heslo nezadávám. Jinak v Properties daného serveru v sekci Security jsem povolil Server Authentication na SQL Server and Windows Authentication mode. Pokud si dobře vzpomínám, tak jsem při instalaci SQL serveru nechal všechno defaultně nastavené, takže bych měl mít Windows Autentication mode místo Mixed mode. Podle tohoto návodu: http://support.microsoft.com/default.asp...;en-us;319930 jsem chtěl změnit v registrech mód na Mixed, ale hodnotu 2 u LoginMode už jsem tam měl nastavenou předtím. V Management Studiu mám složku Security, která obsahuje Users hned dvakrát. Buď přímo pro danou databázi nebo všeobecně pro všechny DB. V té konkrétní DB jdou udělit pro uživatele spíš jen přístupová práva pro tabulky atd., bez zadávání hesla. V tom všeobecném nastavení jsem tedy vytvořil uživatele a zadal pro něj heslo, nastavil SQL Server Authentication, potvrdil a přidal tohoto uživatele ještě do té databáze. V Accessu to ale stále hlásí stejnou chybu. Při přihlašování na ten účet by se dal využít ten connection string, jenže nevím, jak se k němu v Accessu dostanu, jestli to vůbec jde. Ví někdo?

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

V Server Management Studiu dejte vlastnosti serveru a tam se to na nějaké záložce Security dá změnit.

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

Ano to už jsem nastavil, viz. předchozí příspěvek, ale ani to nepomáhá a stále mi to píše tu hlášku. Pak jsem si ještě uvědomil, že by to mělo být nastavené i tady v tom okně vytváření instance: http://cdn.dotnetportal.cz/files/Windows... , zadal jsem SQL Server Authentication a přihlásil se pod mým vytvořeným účtem, ale ani tak to nejede. Už nevím, co s tím. :-/

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

Tak už se mi to po dvou týdnech bádání podařilo konečně rozjet. Odinstaloval jsem celý SQL server a při opětovné instalaci jsem přepnul nastavení na ten Mixed Mode a už se jde vzdáleně připojit na SQL server. To čeho jsem se nejvíc obával, se nakonec ukázalo jako nejrychlejší řešení. ;-)

VYŘEŠENO!

nahlásit spamnahlásit spam 1 / 1 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