Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C#,SQL - Sposób dostępu do bazy danych przez wielu użytkowników

Przemo_2014 21 Mar 2013 11:57 2022 3
  • #1 21 Mar 2013 11:57
    Przemo_2014
    Poziom 19  

    Witam,

    W bazie mam stworzoną tabelę gdzie trzymam login i password użytkownika. Osoba loguje się do bazy za pośrednictwem aplikacji. W aplikacji są podane na stale takie informacje jak hasło i login za pomocą których aplikacja łączy się z baza. Następnie pobiera dane login i hasło jakie podał użytkownik i sprawdza czy są zgodne z tymi które są podane w tabeli jeżeli tak to program umożliwia dostęp do pozostałych tabel.

    Czy takie rozwiązanie jest poprawne ? Jeśli będę miał 15 użytkowników aplikacji to z powyższego logowania program będzie uzyskiwał dostęp tak naprawdę za pomocą tego samego loginu i hasła. Czy to nie stworzy problemu jeśli w tej samej chwili 15 użytkowników będzie chciało uzyskać dostęp do bazy z tego samego konta ?

    Myślałem tez żeby w SQL tworzyć wiele kont użytkownika i każda aplikacja mogla by się łączyć z innego konta. Ale w jaki sposób umożliwić użytkownikowi zmianę hasła tak utworzonego konta w aplikacji ? Czy jest jakaś możliwość odwołania się w C# do serwera SQL i umożliwić zmianę hasła danemu użytkownikowi ?

    0 3
  • #3 21 Mar 2013 12:46
    Tommy82
    Poziom 39  

    Takie rozwiązanie nie jest poprawne bo hasło nie powinno występować jawnie w bazie danych.
    Każdy użytkownik powinien mieć swoje konto, tak by uniemożliwić mu dostęp do danych innych kont lub być w stanie zidentyfikować jego działalność. Nie musi to być konto na poziomie bazy danych sam możesz tym zarządzać w aplikacji. Ten sam login i hasło dla różnych użytkowników to generalnie błąd.
    Jednak wszystko zależy od tego dokładnie o czym rozmawiamy i co odwzorowuje ci Twoje konto i jak to jest zorganizowane.

    Zauważ ze jeden skrypt php niezależnie od tego ile razy jest wywołany może używać tych samych danych dostępowych do bazy.

    Co do zarządzania hasłami odsyłam do manuala Twojego serwera sql lub Google

    0
  • #4 21 Mar 2013 13:10
    marcinj12
    Poziom 40  

    Użytkownik i hasło do łączenia się z BAZĄ DANYCH, które umieszczasz w connection string w aplikacji, może być jeden wspólny.

    W bazie tworzysz tabelę z użytkownikami aplikacji zawierającą login i hasło. Hasło najlepiej żeby było zaszyfrowane bez możliwości odszyfrowania - choćby popularnym algorytmem md5() albo bezpieczniejszym, którymś z rodziny SHA.

    Do sprawdzania zgodności hasła nie musisz nic odszyfrowywać - to, co użytkownik wpisał jawnym tekstem do aplikacji szyfrujesz w ten sam sposób i sprawdzasz zapytaniem SELECT, czy taki rekord istnieje w bazie.

    Na login użytkownika możesz nałożyć sprawdzanie unikalności w bazie danych a nawet klucz główny, żeby się nie powtórzył.

    Do zmiany hasła udostępniasz użytkownikowi okno które działa w ten sam sposób - hasło, które wpisze, jest szyfrowane i zapisywane w takiej postaci do bazy.

    0
  Szukaj w 5mln produktów