Welcome to Sign in | Help
in Search

Adaugare User

Last post 11-29-2006, 9:33 PM by rremus. 4 replies.
Sort Posts: Previous Next
  •  11-29-2006, 7:13 PM 1116

    Adaugare User

    Salut,
    sunt un incepator int-ale "SQL Server 2005 Express"-ului si am o problema, banala pentru voi, imposibila pentru mine:
    Cum adaug un user in SQL Server 2005?
    Trebuie sa fac o baza de date cu mai multe tabele (done that) si vreau ca "lumea" sa se conecteze la ea (din C#), folosind o autentificare cu username si parola, nu "Windows Authentication".
    Merci
  •  11-29-2006, 7:57 PM 1117 in reply to 1116

    Re: Adaugare User

    In SQL Server exista doua nivele de autentificate si autorizare:

    • 'server principals', numitzi si 'login', care sint autentificati de catre instanta de SQL Server. SQL poate autentifica un 'login' fie folosind Windows Auth sau un nume/parola. Authorizarile care se pot aplica la login se refera numai la 'securables' (obiecte ce pot fi authorizate) la nivelul intregii instante: connectare la instanta, access la view-uri la nivelul instantei, access la baze de date individuale. Tabela de metadata care descrie 'server principals' este sys.server_principals (una pentru intreaga instanta)
    • 'database principals' , numitzi si 'user', sint modul concret prin care un 'login' accesseaza o baza de date. Autentificarea unui user nu se bazeaza pe nici o schema de autentificare gen windows auth sau nume/parola, ci se bazeaza pe faptul ca instanta SQL Server a autentificat 'login'-ul si exista o mapare intre login si user (au acelasi SID). Un user poate fi authorizat pentru 'securables' la nivelul unei baze de date: drepturi de creare/accessare tabele, view-uri etc. Tabela de metadada care descrie 'database principals' este sys.database_principals (cite una in fiecare baza de date).

    Deci pentru a resolva problema ta va trebui sa creezi atit un 'server principal' cit si un 'database principal'. De exemplu pentru a crea un login, un user corespunzator intr-o baza de date si al autoriza sa creeze tabele:

    use [master];

    go

    create database [testdb];

    go

    begin transaction

    create login [PopescuIon]

          with password = 'Password#1234',

          default_database = [testdb];

    use [testdb];

    create user [PopescuIon] from login [PopescuIon];

    commit

    go

    use [testdb];

    grant create table to [PopescuIon];

    create table to [PopescuIon];

    go

    In mod normal pentru useri interactivi trebuie specificata clauza MUST_CHANGE la parola (Express insa nu suporta clauza respectiva). Daca nu e vorba de useri interactivi, aproape sigur faptul ca vrei sa folosesti un user si parola este gresit.

    Pentru sintaxa CREATE LOGIN sis CREATE USER: http://msdn2.microsoft.com/en-us/library/ms189751.aspx, http://msdn2.microsoft.com/en-us/library/ms173463.aspx

    HTH,
    ~ Remus


    http://rusanu.com
  •  11-29-2006, 7:57 PM 1118 in reply to 1116

    Re: Adaugare User

    double post


    http://rusanu.com
  •  11-29-2006, 8:16 PM 1122 in reply to 1118

    Re: Adaugare User

    Merci de raspuns, dar mi-am dat seama ca nu-mi trebuie un User separat. Voi crea un Server local care se va conecta la SQL Server folosind Windows Authentication. Pot face asta, nu?

    Imi pare rau daca e un double post, dar am dat search (nu eram membru inca) si nu am gasit.
  •  11-29-2006, 9:33 PM 1128 in reply to 1122

    Re: Adaugare User

    Double post-ul era al meu, am postat raspunsul de doua ori :)

    Daca server-ul tau (IIS sau ASP.Net?) local se conecteaza la SQL folosind contul sub care ruleaza el insusi atunci in principiu toti utilizatorii care se conecteaza la server (HTTP?) vor avea aceleasi drepturi in baza de date din SQL, drepturile 'server'-ului. Daca ai nevoie sa diferentiezi utilizatorii in roluri cu drepturi diferite, 'server'-ul trebuie sa impersoneze utilizatorii conectati la el innainte de a accesa baza de date. In scenariul tau local ('server' si SQL pe aceasi masina) nu e o problema, daca insa muti SQL-ul pe o alta masina atunci trebuie sa te asiguri ca domeniul in care ruleaza aplicatia poate asigura 'delegation': http://technet2.microsoft.com/WindowsServer/en/library/dac7ecea-7c82-43c0-847b-3a1a81454cfe1033.mspx?mfr=true

    HTH,
    ~ Remus


    http://rusanu.com
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems