Barvna shema: Temna
Trenutno dejavna stran: start » sl » Dokumentacija » Integracija podatkov in dostop do podatkov » WKL Database Gateway » Navodila » Posredovanje identitete oseb strežniku SQL Server

Posredovanje identitete oseb strežniku SQL Server

Privzete vrednosti stolpcev, sprožilci in pogledi vaše podatkovne zbirke uporabljajo USER_NAME() ali SUSER_SNAME(). Da bi podatkovna zbirka videla osebo namesto prijave prehoda, prehod vsak stavek osebe, prijavljene z računom Windows, izvede pod njeno lastno prijavo SQL Server (Impersonate).

Pregled rešitve

Vir podatkov nastavite na Personen (osebe) = Impersonate; seznam zavrnitev izvzame prijave, ki jih prehod nikoli ne sme prevzeti (na primer sa ali sistemske skrbnike od zunaj). V SQL Serverju potrebuje prijava vira podatkov dovoljenje za prevzemanje drugih prijav, vsaka oseba pa lastno prijavo. Pravila in odgovori: Posredovanje identitete.

Izvedba

  1. V SQL Serverju dodelite dovoljenje prijavi vira podatkov in tam dodatno zaklenite prijave, ki se nikoli ne smejo prevzeti:

    GRANT IMPERSONATE ANY LOGIN TO [<prijava vira podatkov>];
    DENY IMPERSONATE ON LOGIN::[sa] TO [<prijava vira podatkov>];

    Preostalo tveganje. IMPERSONATE ANY LOGIN prijavi vira podatkov dovoli prevzeti vsako prijavo, tudi prijavo z vlogo sysadmin. DENY zaklene le navedeno prijavo; druge sistemske skrbnike, tudi pozneje ustvarjene, je še vedno mogoče prevzeti. Seznam zavrnitev prehoda (3. korak) preverja pred vsako zamenjavo, vendar je del prehoda: kdor ima niz povezave vira podatkov, ga obide. Ožje je dovoljenje za posamezno prijavo, GRANT IMPERSONATE ON LOGIN::[FIRMA\e.muster] TO [<prijava vira podatkov>] (GRANT Server Principal Permissions), vendar zahteva vnos za vsako novo osebo.

  2. Za vsako osebo v SQL Serverju ustvarite lastno prijavo Windows (CREATE LOGIN [FIRMA\e.muster] FROM WINDOWS) in ji dodelite dovoljenja v podatkovni zbirki. Dostop samo prek skupine Windows ne zadošča: SQL Server takšne osebe ne prevzame.
  3. Preklopite vir podatkov in ustvarite seznam zavrnitev prehoda.
    • S skrbniško shrambo: Datenquellen (viri podatkov), označite vir podatkov, Personen nastavite na Impersonate; seznam zavrnitev urejate pod Identitäten (identitete), zavihek Sperrliste Identitätswechsel (seznam zavrnitev zamenjave identitete) (Weitere (več) > Neuer Sperreintrag (nov vnos zavrnitve)).
    • Brez skrbniške shrambe:

      { "Name": "fachdaten", "Provider": "sqlserver", "ConnectionString": "…",
        "Persons": "Impersonate",
        "DenyImpersonate": [
          { "Logins": [ "sa", "FIRMA\\Datenbankbetrieb" ] },                 // nikoli
          { "Roles": [ "sysadmin" ], "ExceptFrom": [ "192.168.0.0/16" ] }    // sistemski skrbniki le iz lastnega omrežja
        ] }
  4. Če je pred prehodom posredniški strežnik in seznam zavrnitev uporablja omrežja, ga vpišite pod Security:TrustedProxies; glejte Delovanje prehoda za strežnikom IIS ali drugim posredniškim strežnikom.
  5. Preverite s prijavo osebe: v novem zapisu tabele, ki ima za privzeto vrednost stolpca SUSER_SNAME(), je vpisana oseba. Če vir podatkov sprejema lastne stavke SQL (AllowPassThrough) in sme oseba tam pisati, tudi lasten stavek SELECT SUSER_SNAME(), ORIGINAL_LOGIN() pokaže osebo in prijavo vira podatkov. Pravice sql oseba za to ne potrebuje: pri prevzemu identitete odločajo dovoljenja osebe v SQL Serverju.

Razveljavitev. Personen znova nastavite na Service; stavki takrat spet tečejo pod prijavo vira podatkov – prek skrbniške shrambe z naslednjo zahtevo, prek konfiguracijske datoteke po ponovnem zagonu. Dovoljenje v SQL Serverju odvzamete z REVOKE IMPERSONATE ANY LOGIN FROM [<prijava vira podatkov>].

Napotki

  • Račun Windows brez lastne prijave je zavrnjen (403); zahteva se ne izvede nadomestno pod prijavo vira podatkov. Oseba z osebnim ključem brez vpisane prijave SQL Server pa teče pod prijavo vira podatkov, s svojim imenom v kontekstu seje; če naj se stavki izvajajo pod njeno identiteto, ji v skrbništvu vpišite prijavo SQL Server. Na strežniku to stori save-person --name … --login …; pravila in zapora osebe pri tem ostanejo nespremenjeni (glejte Ukazi).
  • Po preimenovanju računa Windows je treba preimenovati tudi prijavo: ALTER LOGIN [FIRMA\alt] WITH NAME = [FIRMA\neu]; glejte Odpravljanje težav.
  • Stroški: zamenjava podaljša vsako zahtevo v prehodu. Okvirna vrednost za lokalne račune Windows: približno 15 ms na zahtevo v primerjavi s približno 2 ms brez zamenjave.
  • Skupne prijave namesto ene za vsako osebo: če naj osebe delajo pod prijavo oddelka, glejte „Nastavitev identitet podatkovne zbirke“ (dokumentacija aplikacije za upravljanje).
  • Osebni ključi prevzamejo prijavo osebe, če ima ta v upravljanju lastno prijavo SQL Server; ključi storitve nikoli ne zamenjajo identitete.

Sorodne teme

sl/wiki/data-conectivity/database-gateway/how-to/pass-persons-to-sql-server.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille