SQL felhasználók azonosítása
2008-11-24T20:37:45+01:00
2008-11-28T13:13:43+01:00
2022-07-19T05:23:15+02:00
  • Van a látókörömben olyan cég ahol winxpprof a "szerver". Napi-heti rutin a kliens be nem engedése olyan okokra hivatkozva amik nem állnak fenn. Nem beszélve at user szám növekedéséről. Ráadásul egy szerver a kiszolgálásra hangolt, egy kliens pedig nem. Tudom, van erőforrás elosztó radio button...
    Mutasd a teljes hozzászólást!
  • Működhet, csak ebben az esetben én nem használnék Windows autentikációt. Csak a macera van vele. Olyan nyakatekert megoldásokkal, mint amit te is javasolsz, talán megoldható, de sokkal egyszerűbb az SQL auth.

    XP vs Srv 2k3:
    Egy 11 fős cégnél már gondot fog okozni az XP 10 egyidejű kapcsolat korlát. Tehát oda kell egy SBS + 10CAL (ami nagyjából egy alkalmazott egyhavi bérköltsége és 3 évig amortizálod - nem egy egetverő költség.) Ráadásul ekkor van már Exchange is.

    SQL auth. trükközés:
    létrehozol az adatbázisodban egy táblát. Ebbe az egyszerűség kedvéért legyen két mező. Egyik tartalmazza a végrehajtandó utasítást, a másik pedig egy boolean, aminek a defaultja 0.
    Amikor létre szeretnél hozni egy SQL logint, akkor semmi mást nem teszel, mint beszúrsz egy új rekordot, a következő tartalommal:
    sp_addlogin 'babo_', 'QwErT1357', 'defdb'
    majd:
    sp_adduser 'babo_', 'babo'

    Létrehozol egy job-ot, amit percenként időzítesz. Ez keresi azokat a rekordokat a táblában, aminek a második mezője 0. kiolvassa az utasítást és végrehajtja sp_executesql segítségével.
    Így az admin usernek nem kell kilátnia az adatbázisból, nem kell extra jog mégis fel tud venni logint és user-t.
    Ennek ugye kicsit kibővített változata, mikor a job ki is kapcsolja magát, majd a kliens progiból bekapcsolod ha kell.
    Ha meg nem egyszerűen szeretnéd megcsinálni, akkor a konkrét utasítást a job-ban rakod össze és teleaggatod a táblát különböző mezőkkel.
    A végrehajtott sorokat, meg a security kedvéért lehet is törölni.
    Mutasd a teljes hozzászólást!
  • Egy sima Xp-n munkacsoportban nem működhet?

    Működhet.
    Mutasd a teljes hozzászólást!
  • És?
    A "windóz" == win2003?
    Egy sima Xp-n munkacsoportban nem működhet?
    Mutasd a teljes hozzászólást!
  • És min fut? MSSQL nem fut, csak vindózon...
    Mutasd a teljes hozzászólást!
  • És hol van szó win2003+ szerverről?
    Én csak sql szervert látok kritériumban, de lehet, hogy én vagyok a figyelmetlen.
    Win authentikáció meg != AD authentikációval
    Mutasd a teljes hozzászólást!
  • Hanem? Ha win2k3+ a szerver, van AD is. Vagy xp profból csinálsz szervert?
    Mutasd a teljes hozzászólást!
  • Eyt kifejthetnéd bővebben, mert nem igazán értem..
    Mutasd a teljes hozzászólást!
  • Ha mondjuk van egy 10 fős kisvállalat, azért én nem kényszeríteném őket arra, hogy vegyenek egy AD-t... kivéve, ha M$ distributor vagyok
    Mutasd a teljes hozzászólást!
  • Ha mindenképp meg kell oldani az SQL authentikációt alkalmazásból, akkor lehet trükközni:
    - készítesz egy táblát, amiben a userekkel kapcsolatos változásokat tárolod
    - készítesz egy job-ot, ami ezt a táblát figyeli és végrehajtja a megfelelő módosításokat (és ugye SQL Agent futtatja, akinek sa joga van)
    - a job-ot lehet ki-be kapcsolni kliens progiból, így szinte azonnal végrehajtható
    Mutasd a teljes hozzászólást!
  • Én meg nem kérem be. Használom a trusted connectiont. Ugyebár lokálisan, domain tree-n belül működik.
    Azon kívül meg nem használnám a windows auth-t.
    Mutasd a teljes hozzászólást!
  • Én az alábbi módon oldanám meg MSSQL2000/SQL2005Ex-re:
    1. Windows authentikációt állítanék az sql szerverre 2. Bekérném a felhasználó/jelszó párost amit a winbe történő bejelentkezésre használ 3. Megszemélyesíteném ezt az user-t 4. A megszemélyesített felhasználó nevében lépnék be az adatbázisba
    Ebben az esetben az adatbázis managerrel tudod szabályozni, hogy ki melyik táblához hogyan férhet hozzá.ű
    Megj.: Ha webes alkalmazást készítesz, és nem intranetre, akkor azért ezt nem javaslom.
    Mutasd a teljes hozzászólást!
  • Microsoft SQL Server esetén:
    Aktuális felhasználó:
    SELECT SYSTEM_USER

    login hozzáadása szerverhez:
    sp_addlogin
    user hozzáadása adatbázishoz:
    sp_adduser
    jelszó megváltoztatása loginhoz:
    sp_password

    De!
    Ezt alkalmazáson belül azért nehéz megtenni, mert ezekhez sa és dbo jog kell.
    Mutasd a teljes hozzászólást!
  • Ez minden motornál teljesen más, itt a kompatbilitás közelít a nullához.
    Mutasd a teljes hozzászólást!
  • Az hogy te leteszed 1 táblába/bármibe a felhasználó/jelszavat az naon lúzer megoldás, én el sem fogadnám. Gondolkozz abba hogy az Sql motor legyen a jelszó ellenőr. a táblába/bármibe letett nevek-jelszavak a hacker/cracker brigád csemegéje.
    Arról viszont nem tudok hogy egy Oracle motor-t csakúgy feltörtek és elvittek 1 csomó jelszót. (mondjuk ha valakinek sikerülne bedönthetné az egész pénzügyi világot) Megjegyzem hogy 1 oracle/mssql motorban NINCS SEMMILYEN lehetőség visszanézni a jelszót, max ha megfelelő jogosultságod van akkor beállíthatsz 1 jelszót a felhasználónak, pl. ha elfelejtette. de soha nem tudod neki megmondani hogy mi volt. A jogosultsági rendszer Oracle-ban igen összetett, könyvek komplett fejezetei foglakoznak vele. Logikája egyébként ugyanaz a hierahikus jogosultság ami pl Microsoft serverekbe van, léteznek szerepkörök (roles) amit létrehozhatsz...
    Mutasd a teljes hozzászólást!
  • grant sql parancs?
    Mutasd a teljes hozzászólást!
  • ok ok, de hogyan tudom a jelszót megváltoztatni?
    Mutasd a teljes hozzászólást!
  • Szerintem csatlakozz azzal amit a felhasználó megad, mást úgysem tehetsz, hiszen nincs élő kapcsolat még, és nézd meg dob e kivételt a csatlakozás. Ha igen, milyet? Ha access deniedet akkor nincs ilyne user, vagy rossz a jelszó.
    _Szerintem_, de nem vagyok profi benne...
    Mutasd a teljes hozzászólást!
  • Sziasztok!
    Lenne egy elméleti programozási kérdésem:
    Hobby szinten programozom c#-ban, és most ismerkedek az adatbázis kezelés részével. SQL adatbázison próbálkozom. Nagyon sok példát találtam, ami leírja, hogy mi a módja sql adatbázis kezelőhöz való csatlakozásnak. Ezeken a példákon átrágtam magamat, és működik. De lenne egy elméleti kérdésem, mégpedig az, hogy az adatbázishoz elméletileg több felhasználó csatlakozik, amit én eddig úgy csináltam, hogy egy táblában eltároltam a felhasználó nevet és a jelszót és egy fix felhasználónévvel és jelszóval csatlakoztam az adatbázishoz (ez mindig ugyan az, bármit csinálok: lekérdezek, frissítek, törlök), és megvizsgáltam a táblában tárolt felhasználónevet és jelszavat a beírthoz. Ha megtalálható volt a táblában a név és jó volt a jelszó is, akkor továbbenged.
    És most jön az én problémám, hogy az sql adatbázishoz, tudok direktben adatbázisokhoz felhasználókat létrehozni, rendelni. De nem igazán találtam leírást, arra, hogy ilyen esetben hogyan tudom leellenőrizni, hogy van-e ilyen felhasználóm? Ilyenkor is megtalálom a felhasználókat egy rendszertáblában.
    Ja és hogyan tudom, az sql táblákhoz hozzáadott felhasználók jelszavát megváltoztatni, mert amit én csináltam, ott én tudtam azt, hogy melyik táblábnak, melyik oszlopában volt sting-ként eltárolva a jelszó.
    Légyszi aki érti a problémámat, az segítsen elmagyarázni nekem, hogy hogyan lehet ezt megvalósítani.
    Mutasd a teljes hozzászólást!
abcd