Adatbázis keresése helyi hálózaton

Adatbázis keresése helyi hálózaton
2017-09-22T09:41:33+02:00
2017-09-23T21:00:07+02:00
2022-12-04T19:20:44+01:00
WebDev
Sziasztok!

Egy létező programot szeretnék tovább fejleszteni a következő módon:

Indításkor a helyi hálózaton felderíti, hogy milyen adatbázis (mysql) szerverek vannak. Kilistázza és a felhasználó kiválasztja, amit használni akar és a program a használata közben oda menti a saját adatait egy külön táblába mondjuk.

Ez a felderítés lenne itt a nagy kérdés, a csatlakozás azt hiszem már menne..

Van erre bevált ötletetek?
Mutasd a teljes hozzászólást!
Én azt csinálnám, hogy készítenék egy telepítési doksit (szerver igények, kliens igények + a program és az adatbázis telepítése), azt elküldeném és cső. Szólnak a saját vagy hívnak egy informatikust és az feltelepíti. Az adatok, hát... ha több gépről kell összefésülni akkor elküldik mindet és ti "összefésülitek".
De még az is kisebb feladattal járna nektek ha táveléréssel feltelepítenétek az ügyfélnél a szervert a kliensek átállítását meg elmondjátok nekik hogy hogyan kell.
Persze tudom, hogy ez nem programozói szemlélet, de ezt tartanám egyszerűbbnek
Mutasd a teljes hozzászólást!

  • Hali,

    végignézed a helyi hálózatra csatolt gépeket majd:

    mysqlserverinfo --server=user:pass@host:port:socket --format=grid
    és az eredmény alapján összeállítod a listát.
    Mutasd a teljes hozzászólást!
  • Tehát ciklusban minden gépnél megpróbálkozok ezzel a paranccsal, és a válaszból kiderül hogy mysql szerver-e !?
    Mutasd a teljes hozzászólást!
  • Reméljük, nincs arrafelé egy adatbiztonsági felelős, mert az magyarul sírna ettől a koncepciótól.
    (Ha emlékszünk még a sportriporterre a szöuli olimpiáról: Győzött a sportolónk, megvan az aranyérem! Magyar nézőim, magyar hallgatóim, magyarul sírok!)
    Mutasd a teljes hozzászólást!
  • Mi a gondod ezzel a módszerrel?
    Szerintem sokkal barátibb megoldás megkeresni és felajánlani a lehetőségeket, mintha kérdezés nélkül feltenne egyet a gépre, függetlenül attól, hogy van-e már ott egy, vagy sem.
    Használtam már olyan programot, ami kérdés nélkül feltelepített egy második FB szervert a gépemre, holott volt már rajta egy.
    Az nem várható el egy átlag felhasználótól, hogy találja ki, a hálózat melyik gépén van sql szerver, hisz ő nem ért hozzá. De ha a program felsorolja, akkor könnyebben dönteni, vagy segítséget kérni.

    Gábor
    Mutasd a teljes hozzászólást!
  • A gondolatkísérlet kedvéért tegyük fel, hogy én vagyok Haxor Henrik, és nyitok egy MySql-t a gépemen. Vajon mi fogja megakadályozni a felhasználókat abban, hogy betolják hozzám a családi fényképeiket, vagy az adóbevallásukat?
    Mutasd a teljes hozzászólást!
  • Nem várható el, így van.
    De ez nem is az ő feladata!
    A felhasználó ne telepítsen semmit.
    Mutasd a teljes hozzászólást!
  • Attól, hogy a hálózat egyik gépén van egy MySql, és ezt te tudod a gépről, hogy tudnál oda bármi egyebet betolni?
    Én nem arra gondoltam, hogy a MySql (illetve a MySql-es gép) kürtölje szét magáról a belépési adatait. Ez nyilván égbekiáltó marhaság lenne.
    De ha felhasználóként kapnék egy olyan üzenetet, hogy a program telepítéséhez válasszak az alábbiak közül:
    - Új sql szerver a helyi gépen
    - Sql szerver a Gép1-en
    - Sql szerver a Gép2-őn
    - stb.
    Akkor miért ne adhatna a program lehetőséget arra, hogy kiválasszam mondjuk a Gép2-őt és megadjam a belépési adatait? Ha nem tudom, úgy is hívni fogom a rendszergazdát.
    Mutasd a teljes hozzászólást!
  • Ez most ugye vicc? Láttál már olyan felhasználót, aki nem akart valamit telepíteni?
    Mutasd a teljes hozzászólást!
  • Nem vicc! Azt írtad hálózat! Ez otthoni környezetben nem gyakori, maximum 1-2 fájl- és nyomtatómegosztás. Ott rendben van, telepítsen amit akar. De üzleti környezetben a felhasználó ne rendelkezzen ilyen jogosultsággal. Ha dolgoztál volna ilyen környezetben, tudnád miért.
    Mutasd a teljes hozzászólást!
  • Szóval meglát a user a listában egy IP-címet, és erről hirtelen eszébe  jut, hogy azon a gépen van egy MySql-account-ja? Esetleg rögtön be is próbálkozik a program root/nincsjelszó azonosítással?
    Mutasd a teljes hozzászólást!
  • Véleményem szerint, ha a felhasználó olyan szinten van, hogy be tud próbálkozni a root/nincsjelszó azonosítással, akkor már majdnem mindegy, hogy felajánlja egy program a gépet, vagy magától találja meg. (Itt a "be tud próbákozni"-ban benne van, hogy van tudása, eszköze és jogosultsága is hozzá).
    Mutasd a teljes hozzászólást!
  • Igen, dolgoztam és dolgozom is ilyen környezetben. És látom azt, hogy ha minden felhasználót vendégnek deklarálnánk az általa használt gépnél, akkor nem győznénk a munkát, mert egyszerűen az apró-cseprő dolgokkal is minket kellene zaklatniuk. Ergo, mindenki tud telepíteni a SAJÁT használatú gépére. Más gépre meg be sem tud jelentkezni.
    Ha valaki fel akarna tenni magának egy programot és az kilistázná a fejlesztői gépet, hogy SQL szerver van rajta, hát tegye. De bejelentkezni nem fog tudni, hisz nem fogja megkapni hozzá a szükséges adatokat.
    Természetesen a root/üresjelszó kombinációk mellőzve vannak, de ha valaki ilyet használ, az már önmagában is problémás, nem csak az emlegetett listázásnál.
    Én személy szerint igen zokon vettem egy programtól, hogy mindenféle kérdés, tájékoztatás nélkül feltelepített a gépemre egy SQL szervert, természetesen az általam használtnál régebbi verziót és azon lépéssel együtt a kliens kapcsolódáshoz szükséges könyvtárakat is downgrade-elte....
    Mindezt úgy, hogy simán el tudott volna menni a program az én verziómmal is, mint később kiderült.
    Mutasd a teljes hozzászólást!
  • Nem egészen, az ellenkezőjét vetettem fel: nem a haxor tör be az áldozat adatbázisába, hanem a haxornak van egy csali adatbázisa, és az áldozat abba tölti fel a munkaidőelszámolását.
    Mutasd a teljes hozzászólást!
  • Óh, értem, mit akarsz mondani.
    Létezik olyan csaló szoftver, ami behazudja magát MySql-nek, valamint fogadni is tudja a másik program kommunikációját, így szerezve meg adatokat?
    Mutasd a teljes hozzászólást!
  • Igen, a maga a mysqld... Mondjuk esténként megnézed, ki mit töltött fel neked, van-e közte bizalmas adat.

    Egy változat: csinálok korlátlanul írható/olvasható egy 'Fájlmegosztást' (magyarul: SMB-share-t), azzal a névvel, hogy 'Céges fájlcsere adatterület'. Aztán időnként ránézek, fogtam-e valamit.
    Mutasd a teljes hozzászólást!
  • Na jó, de ez már nem az a kategória, hogy szabad-e látnom, hogy a hálózat egyik gépén van-e MySql, vagy nincs.
    Mutasd a teljes hozzászólást!
  • A "marhaság" nem is mer határokat. A hüleség sem.  És itt nem az end-userra gondolok.

    Nem tudom / tudjuk mi a WebDev létező programja amit tovább szeretne fejleszteni. Ha már intranet, akkor beállítások -> gép:port-> stb. És ezt elvégzi a rendszergazda. Ez a mysql adatbázis szerver keresés a belső hálózaton csak egy fölösleges kanyar. Ami nyagyon beleillik a "programozói hüleség" kategórába.

    Ezt nem is akartam véleményezni, majd rá jön amikor csinálja.....
    Mutasd a teljes hozzászólást!
  • Nem tűnik túl átgondolt ötletnek nekem az a "találunk egy random adatbázist a hálózaton, és oda dobáljuk bele az adatainkat" megoldás. Mi van ha azt az adatbázist valaki más kezeli, de neki nincs már rá szüksége és törli? Mi van ha azt a gépet lehúzzák a hálózatról? Alapból mit fog szólni hozzá, hogy random tagok töltögetnek az ő adatbázisába?

    Ha olyan a program hogy több helyre lesz feltelepítve, és egy közös adatbázisra van szükség, akkor tegyél bele egy adatbázis kapcsolat beállítása opciót.
    Ha csak a program saját adatainak a tárolására van szükség, akkor ara ott a lokális "adatbázis" megoldásnak, pl. sqlite.
    Mutasd a teljes hozzászólást!
  • Igen, jól értetted a program jelen állapotában helyi adatbázisba ment (compact sql). A felhasználók megkapják a programot telepítik és használják egy irodán belül.

    De igény lenne arra, hogy egymás felületét láthassák a kollégák, tehát közös adatbázisra van szükség. Mindenképpen belső hálózaton működőt, ami megbízható.

    A probléma, hogy nem lehetünk jelen, mert nem magyarország a felhasználók köre, csak telefonos segítséggel.

    Két verzión agyalunk:

    A verzió) Az irodában segítségünkkel telepítene adatbázist egy gépre, és a programok megtalálják. Ezt a megtalálják dolgot akartuk leegyszerűsíteni... erre kérdeztem most

    B verzió) Az egyik program "csinálja a szervert, szerverként viselkedik", amit a többiek is látnak. Ez a verzió nincs még előttem fejben, hogy hogyan lehetne... ha lehetne.


    Próbálok utánajérni. Mindkét eshetőséget megvizsgálni, és az egyszerűbb, stabilabb verziót megvalósítani.
    Mutasd a teljes hozzászólást!
  • Én a programot adatbázis kezelő nélkül szoktam installálni.
    Aztán indulás után, ha nincs beparaméteretve, akkor megkérdezi, hogy compact sql, sql szerver telepítést vagy kliens kapcsolódást akarunk. [*]
    Compact sql & sql szerver esetén elindítja az én programmom az installálást és eltárolja a paraméterben a módot.
    Sql szerver esetén kiirja a felhasználónak, hogyha másik gépen kliens módot paraméterez (és telepíti is ha kell), akkor milyen adatokat adjon meg.

    Ez a másik (csali/téves) adatbázisba ír egy marhaság, hiszen ott megfelelő táblaszrekezetnek kell lennie (hiszen az sql szerveres paraméterezés létrehozza az adatbázis sémáját is) illetve név/jelszó párosnak azon az adatbázison is megfelelőnek kell lennie. Ha meg valaki default név/jelszót használ, az amúgy is menthetetlen.

    [*] Ez azért is jó, mert lehet compakttal indítani és később egyszerűen áttérni szerveres+kliensek változatra, csak át kell paraméterezni az egyes munkahelyek programjait.

    Persze nem kizárt, hogy az intranetet scannelje a kliensnek paraméterezett gép és ha egyetlen megfelelő szervert talál, akár kérdés nélkül "beparaméterezi magát".
    Mutasd a teljes hozzászólást!
  • Én azt csinálnám, hogy készítenék egy telepítési doksit (szerver igények, kliens igények + a program és az adatbázis telepítése), azt elküldeném és cső. Szólnak a saját vagy hívnak egy informatikust és az feltelepíti. Az adatok, hát... ha több gépről kell összefésülni akkor elküldik mindet és ti "összefésülitek".
    De még az is kisebb feladattal járna nektek ha táveléréssel feltelepítenétek az ügyfélnél a szervert a kliensek átállítását meg elmondjátok nekik hogy hogyan kell.
    Persze tudom, hogy ez nem programozói szemlélet, de ezt tartanám egyszerűbbnek
    Mutasd a teljes hozzászólást!
  • Érdemes a mysql szervert egy szabad portszámra raknod és nem a sztandard portot használni.
    Akkor nem sírnának a biztonsági kollégák, hogy valaki törni akarja a db szervereket.

    A felderítést gondolom lehetne egy brodcastos felderítéssel kezdeni a broadcast domainben.
    A porton kívül lehetne a a telepítésedhez saját felhasználó és hozzá tartozó saját jelszó.
    A felderítés során talált gépeken ezzel a userrel és jelszóval próbálhatsz kapcsodni, ha sikerült, akkor az a te adatbázis instance-od.
    Aztán választhatnál a talált instance-ok közül ha több is van egy domainben.
    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