MSSQL Server elérése hálózaton keresztül
2007-11-06T14:19:18+01:00
2007-11-23T10:00:40+01:00
2022-07-22T01:57:30+02:00
kbg
Hi!

Letöltöttem a Microsoft SQL Server Management Studio Express 9.00.3042.00-t, és a rajta található adatbázist szeretném elérni, a hálózatban található gépekről.
Saját gépről elérem, de a többi géptől ez a választ kapom:
cannot locate or connect to sql server

Tudna valaki segíteni, h mit nem állítottam be, vagy ...?

eik

kbg
Mutasd a teljes hozzászólást!
No akkor. A Management Studio Express egy management progi, mint a neve is mutatja . Amit te szeretnél elérni az az SQL Server Express.
Nagy valószínűséggel nem sokat vacakoltál a Readme elolvasásával, pedig ez azon ritka kivételes progik egyike, ahol érdemes, merthogy van a setupnak egy csomó paramétere ami lényeges, különben default beállításokkal megy fel. Ezen cseppet sem lényegtelen dologok egyika a használatban lévő protocolok. Alapértelmezésben semmilyen protocolt nedm indít el, tehát nem figyel a gépen kívülre.

Ezt szerencsére könnyedén tudod orvosolni:
Start menü \ Programok \ Microsoft SQL Server 2005 \ Configuration Tools \ SQL Server Configuration Manager
Itt a "SQL Server 2005 Network Configuration" alatt el tudod indítani a hálózati protocolokat. Általában a TCP/IP és/vagy a Named Pipes elég.

A másik nem elhanyagolható paraméter az authentikáció típusa. Alapértelmezésben csak Windows authentikáció van. Ez annyit tesz, hogy a gépeden lévő Administrators (Rendszergazda) csoportot adminná teszi az SQL szerveren (Sysadmin role tag lesz a csoport), de ezen felül senkinek nem lesz joga. Ha másik gépről szeretnéd elérni ezt a szervert és nem domain authentikáció van akkor ez nehézkes lesz. Ezen segíthet az SQL authentikáció (pontosabban Mixed, ugyanis a Windows authentikációt nem lehet kikapcsolni). Ezt is viszonylag könnyen orvosolhatod: a Management Express-ben jobb klikk a szerven, Properties. A Security lapon a Server authentication rész alatt válaíszd a vegyes módszert. Ha minden igaz akkor meg kell majd adnod az sa jelszavát (de ezt nem tudom, mert én eleve mixed auth. móddal telepítettem és paraméterben adtam meg az sa jelszót).
Ezek után már csak felhasználót kell felvinned a server loginok közé, majd ebből adatbázis usert kell csinálni és jogokat kell osztani.

Ekkor van esélyed elérni a szervert gépnév vagy IP cím alapján - feltéve, hogy nincs futó tűzfal a szerveren ami ezt megakadályozza. Ekkor a 1433-as portot meg kell nyitnod.
Mutasd a teljes hozzászólást!

  • Hogy akarod elérni? ODBC?
    A szerveren felhasználónak jogot kell adni.
    Mutasd a teljes hozzászólást!
  • =re dbexlorerrel keresztül sem megy, bde-n keresztül.
    A szerveren felhasználónak jogot kell adni.

    Erről tudnál vmit bővebben?
    Az Aliasok rendben vannak, saját gépről (ahol a Server van), rendesen megy...
    Mutasd a teljes hozzászólást!
  • Először is aki a te gépeden található akármit el akarja érni, annak a te gépedre való belépéshez kell legyen joga. Másrészt az adott adatbázis használatához kell a jogosultság.
    Nálam SQL Server Enterprise Manager van. Itt az adatbázison belül található Users opció, ott kell megadni a jogot.

    Accessel akarod használni?
    Mutasd a teljes hozzászólást!
  • Szia!

    Tisztázzunk szerintem egy-két dolgot:

    Letöltöttem a Microsoft SQL Server Management Studio Express 9.00.3042.00-t, és a rajta található adatbázist szeretném elérni
    A fent említett program egy kezelő felület az SQL szerverhez, nincsen rajta semmilyen adatbázis.

    Írd le, hogyan szeretnéd elérni. Szintén SSMSE-ből, vagy egy programból, vagy hogyan? Milyen autentikációt használsz? Windows, vagy Mixed mode? A többi gép látja amúgy a kérdéses gépet, vagy csak az adatbázist nem tudja elérni?

    Amúgy kapcsolódás során a Server Name tulajdonság így néz ki:

    GEPNEV\INSTANCENAME

    Ahol GEPNEV annak a gépnek a neve, ahová csatlakozni szeretnél (Vezérlőpult/Rendszer/Számítógépnév/ A számítógép teljes neve), az INSTANCENAME pedig az SQL szerver példányának a neve.

    A Server Name amúgy láható a Magament Studio bal oldalán, a legfelső sorban kapcsolódás után.
    Mutasd a teljes hozzászólást!
  • Letöltöttem a Microsoft SQL Server Management Studio Express 9.00.3042.00-t, Megkerestem a szervert az Object Explorer ablakban, kinyitottam, megnyitottam a Databases-t, kiválasztottam a megfelető adatbázist, nálam rajta van, persze mondhatjuk, hogy nincs rajta, csak elérhető, megnyitottam, és utána megnyitottam a Securiry-t. Ott van users. Itt láthatod az engedélyezett felhasználókat.

    Jobb egérgomb a Users ablakon, New users opció. Itt vegyed fel az új felhasználót. A hálózati felhasználót a hálózat nevével.
    Mutasd a teljes hozzászólást!
  • Persze az előző nem Hixnek szól, hanem Kbgnek.
    Mutasd a teljes hozzászólást!
  • No akkor. A Management Studio Express egy management progi, mint a neve is mutatja . Amit te szeretnél elérni az az SQL Server Express.
    Nagy valószínűséggel nem sokat vacakoltál a Readme elolvasásával, pedig ez azon ritka kivételes progik egyike, ahol érdemes, merthogy van a setupnak egy csomó paramétere ami lényeges, különben default beállításokkal megy fel. Ezen cseppet sem lényegtelen dologok egyika a használatban lévő protocolok. Alapértelmezésben semmilyen protocolt nedm indít el, tehát nem figyel a gépen kívülre.

    Ezt szerencsére könnyedén tudod orvosolni:
    Start menü \ Programok \ Microsoft SQL Server 2005 \ Configuration Tools \ SQL Server Configuration Manager
    Itt a "SQL Server 2005 Network Configuration" alatt el tudod indítani a hálózati protocolokat. Általában a TCP/IP és/vagy a Named Pipes elég.

    A másik nem elhanyagolható paraméter az authentikáció típusa. Alapértelmezésben csak Windows authentikáció van. Ez annyit tesz, hogy a gépeden lévő Administrators (Rendszergazda) csoportot adminná teszi az SQL szerveren (Sysadmin role tag lesz a csoport), de ezen felül senkinek nem lesz joga. Ha másik gépről szeretnéd elérni ezt a szervert és nem domain authentikáció van akkor ez nehézkes lesz. Ezen segíthet az SQL authentikáció (pontosabban Mixed, ugyanis a Windows authentikációt nem lehet kikapcsolni). Ezt is viszonylag könnyen orvosolhatod: a Management Express-ben jobb klikk a szerven, Properties. A Security lapon a Server authentication rész alatt válaíszd a vegyes módszert. Ha minden igaz akkor meg kell majd adnod az sa jelszavát (de ezt nem tudom, mert én eleve mixed auth. móddal telepítettem és paraméterben adtam meg az sa jelszót).
    Ezek után már csak felhasználót kell felvinned a server loginok közé, majd ebből adatbázis usert kell csinálni és jogokat kell osztani.

    Ekkor van esélyed elérni a szervert gépnév vagy IP cím alapján - feltéve, hogy nincs futó tűzfal a szerveren ami ezt megakadályozza. Ekkor a 1433-as portot meg kell nyitnod.
    Mutasd a teljes hozzászólást!
  • Hasonló tömörséggel próbáltam volna én is összefoglalni, de megelőztél. Ami a Windows Integrated bejelentkezést illeti, munkacsoportos környezetben csak annyi a dolga, hogy létrehoz egy ugyanolyan felhasználót az SQL Serveren, mint a saját gépén és azzal lép be és próbál csatlakozni. Tehát nem kell a mixed mode.

    A Windows tűzfal beállításához (default 1433-as TCP port esetén): "netsh f se p t 1433 SQLExpress e s" futtatásba.
    Mutasd a teljes hozzászólást!
  • Igen, ez így működik - amíg meg nem változik a jelszó a másik gépen .
    Ha nincs domain akkor szvsz inkább SQL authentikáció az alkalmasabb.
    (vagy application role ha authentikál az app)
    Mutasd a teljes hozzászólást!
  • Természetesen, addig működik, viszont nem közlekedik a jelszó a hálózaton, nincs feleslegesen sa. Én nem használnám a mixed mode-ot ha lehet.
    Mutasd a teljes hozzászólást!
  • Köszönöm a sok választ.
    Ez nagyon nem megy...
    Hálózatira még nem tettem fel sql servert.
    Megpróbálom összefoglalni...
    - Az adatbázisokat természetesen már megcsináltam, fel is tettem a serverre.
    - SQL Server and Windows autentication módban van az adatbázis
    - A többi gép látja a gépet ahol a server van.
    - Server neve: IRODA\SQLEXPRESS
    - Protocols for SQLEXPRESS:
    Shared Memory, Named pipes, TCP/IP = engedélyezett
    -
    Ezek után már csak felhasználót kell felvinned a server loginok közé

    GENERAL:
    LOGIN NAME: MÁSIKGÉPNEVE\FELHASZNÁLÓ?
    AUTENTICATION?
    DEFAULT DATABASE?
    DEFAULT LANGUAGE?
    SERVER ROLES:

    kbg
    Mutasd a teljes hozzászólást!
  • LOGIN NAME:
    lsd Captain Crash 09:13-as hozzászólását:
    Ha nincs domain authentikáció akkor a saját gépedre is létre kell hozni egy ugyan olyan nevű felhasználó(ka)t mint amivel a kliens(ek)en bejelentkeznek a userek a windowsba. A KLINESN\USERNÉV nem megoldás ebben az esetben.
    Ha van domain akkor felveheted a userket DOMAIN\USERNAME formában és ninc silyen probléma.
    Vagy választod az egyszerűbb utat és magad kitalálsz egy felhasználónevet (pl: user1, user2, stb)

    AUTHENTICATION:
    vagy Windows vagy SQL. Lsd előbbi pont.

    DEFAULT DATABASE:
    Gondolom az elkészült adatbázis lenne logikus. Persze maradhat a master is (csak oda jó esetben nem lesz joga).

    DEFAULT LANGUAGE:
    Hagyd alapértelmezésen. Javarészt csak a hibaüzenetek nyelvére szolgál, de nálad ez úgy sincs feltöltve, így tök mindegy.

    SERVER ROLES:
    Semmi. Nem adminisztrátort szeretnél belőlük csinálni, csak egy mezei usert.


    Javasolnék egy SQL Admin tanfolyamot. Ott egy hét alatt legalább az alapokkal megismerkednél. E nélkül SQL szervert üzemeltetni öngyilkos vállalkozás.
    Mutasd a teljes hozzászólást!
  • LOGIN NAME: HálózatNEVE\FELHASZNÁLÓ
    Mutasd a teljes hozzászólást!
  • Az sql express alapban nem kommunikál ip alapokon. Ezt külön be kell kapcsolni. Azután már elérheti a többi gép is.
    Utána egy gép restart, server nem elég, már ezt egyszer beszoptam

    (bocs, a kérdezőnek szántam, csak lusta voltamfelgörgetni...)
    Mutasd a teljes hozzászólást!
  • write only?
    Mutasd a teljes hozzászólást!
  • Hmmm, tényleg, bocsánat
    Mutasd a teljes hozzászólást!
  • Köszönöm mindenkinek a segítséget.
    Végülis újra telepítettem a Servert, adafigyeltem minden beállításra, és így működik...

    üdv

    kbg
    Mutasd a teljes hozzászólást!
  • Üdv!

    Abban kérném a segítségeteket, hogy ha VB.NET-ben kódban szeretnék létrehozni egy adatbázit, hogy tudom azt megtenni, hogy ha törölni kell mégis, újra létre tudjam hozni ugyanazon a névvel. Mert most nem engedi és fejlesztés közben mindig más névvel kell létrehoznom a teszt adatbázist.

    Ezt a kódsort használom:

    dbname = "adatbazis"
    ssceconfilename = "C:\Adatbazis\" & dbname & ".mdf"

    ssconn.ConnectionString = "Data Source=.\SQLEXPRESS;Integrated Security=True;"

    Dim CreateDatabase As String= "CREATE DATABASE " & dbname & " ON (NAME = " & dbname & ", FILENAME = '" & ssceconfilename & "')"

    Dim myCommand As New SqlCommand(CreateDatabase, ssconn)
    ssconn.Open()
    myCommand.ExecuteNonQuery()

    Másik kérdés, ha már beállítottam az SQL Express-t a szerveren és hozzáadtam a felhasználókat, hol állítom be a kódban, hogy a szerveren keressen az adatbázist?

    Köszönöm!
    Mutasd a teljes hozzászólást!

  • (prog.hu-ra vele)

    Egyébként:
    1) Miután DROP-oltad az adatbázist az mdf fájl még ott marad, így nem tudja újra létrehozni. Tehát simán IO.File.Delete(ssceconfilename) és működni fog.

    2) ConnectionStrings.com - Forgot that connection string? Get it here!

    Szerintem, ha ilyesmit szeretnél és amúgy is Express-t használsz akkor használd ki annak azt a lehetőségét, hogy menet közben képes attach-elni az mdf-et. És ekkor nem kell kódból CREATE DATABASE.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd