Welcome to Sign in | Help

Re: Adaugare User

  •  11-29-2006, 7:57 PM

    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
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems