Nastavitev identitet podatkovne zbirke
V mnogih podatkovnih zbirkah osebe nimajo lastnih dovoljenj, temveč delajo prek skupne prijave, na primer
ene za vsak oddelek (prodaja), katere geslo poznajo vsi. Z identitetami podatkovne zbirke se vsaka
oseba prijavi pod svojim imenom, prehod pa namesto nje preklopi na skupno prijavo. Geslo skupne
prijave tako ni več treba nikomur posredovati, prehod pa kljub temu ve, kdo je kaj naredil.
Pregled rešitve
V področju Identitäten (Identitete) za vsak vir podatkov ustvarite identitete, pod katerimi se smejo izvajati zahteve. V njihovem podrobnem seznamu „Zuordnungen“ (Dodelitve) določite, kdo jih sme prevzeti: oseba, račun Windows, skupina Windows ali posamezen ključ.
Postopek
Pogoj v SQL Serverju (naloga skrbnika podatkovne zbirke): skupna prijava obstaja in ima svoja dovoljenja, prijava vira podatkov pa sme preklopiti nanjo:
GRANT IMPERSONATE ON LOGIN::[prodaja] TO [<prijava vira podatkov>];
Kaj to dovoljenje pomeni. IMPERSONATE prijavi vira podatkov dovoli, da z EXECUTE AS LOGIN
deluje kot prodaja – z vsemi dovoljenji prijave prodaja in brez njenega gesla (Microsoft: „GRANT
Server Principal Permissions (Transact-SQL)“,
https://learn.microsoft.com/sql/t-sql/statements/grant-server-principal-permissions-transact-sql,
in „EXECUTE AS (Transact-SQL)“,
https://learn.microsoft.com/sql/t-sql/statements/execute-as-transact-sql). To dovoljenje velja v
samem SQL Serverju, ne le prek podatkovnega prehoda: kdor pozna poverilnice vira podatkov, lahko
prevzame vsako prijavo, na katero sme vir preklopiti. Zato:
IMPERSONATEdodelite samo za skupne prijave, ki jih identiteta dejansko potrebuje, nikoli pa za prijave s strežniškimi vlogami, kot jesysadmin.- Poverilnice vira podatkov so shranjene šifrirano v skrbniški shrambi; najbolje je, da jih zunaj nje ne pozna nihče (glejte Povezava vira podatkov).
- Seznam blokiranih zamenjav (spodaj) je dodatna varovalka: prijave, ki so na njem, prehod ne prevzame, tudi če bi SQL Server preklop dovolil.
Odprite Identitäten, izberite Neue Datenbank-Identität (Nova identiteta podatkovne zbirke) in izpolnite obrazec na desni:
Polje Kaj vnesete Datenquelle (Vir podatkov) Izberite ga s seznama Name zur Auswahl (ROLE=) (Ime za izbiro) Ime, s katerim oseba izbere identiteto, na primer prodaja; znotraj vira podatkov mora biti enoličnoArt (Vrsta) Sammelanmeldung (Login) (Skupna prijava): preklop na skupno prijavo. Eigene Anmeldung der Person (Own) (Lastna prijava osebe): preklop na lastno prijavo osebe. Anmeldung der Datenquelle (Alias) (Prijava vira podatkov): brez preklopa. Pod seznamom je razloženo, kaj izbrana vrsta pomeni Sammelanmeldung (Skupna prijava) Samo pri vrsti skupna prijava: prijava v SQL Server, na primer prodajaAktiv (Aktivno) Potrjeno - Vrnite se na seznam. Pri vrsti skupna prijava prehod preklop takoj preizkusi in identiteto s sporočilom zavrne, če prijava ne obstaja, je na seznamu blokiranih zamenjav, nima dostopa do podatkovne zbirke ali SQL Server preklop zavrne.
- Razširite identiteto, odprite zavihek Zuordnungen in za vsakogar, ki jo sme uporabljati, dodajte vrstico. Izpolnite natanko enega od stolpcev Person (Oseba), Windows-Konto oder -Gruppe (Račun ali skupina Windows) ali Schlüssel (Ključ). Osebo in ključ izberete s seznama (ime osebe; oznaka ključa in njegovi zadnji znaki), račun ali skupino Windows pa vpišete z imenom.
Na sliki: (1) kdo sme prevzeti identiteto.
Rezultat: Zahteve dodeljenih oseb se izvajajo pod skupno prijavo. Revizijska sled navede obe:
… durch Ana Novak (k…) als prodaja (… Ana Novak (k…) kot prodaja).
Napotki
- Več identitet za eno osebo: Če oseba identitete ne izbere, velja njena Vorgabe-Identität (Privzeta identiteta) (spustni seznam pod Personen und Schlüssel (Osebe in ključi)). Seznam ponuja identitete, dodeljene osebi, njenim ključem ali njenemu računu Windows, ne pa tistih, dodeljenih prek skupine Windows. Če privzete identitete ni, prehod zahtevo zavrne in navede identitete, ki so na voljo. V gonilniku ODBC oseba izbere identiteto z
ROLE=ali s seznama. - Ena identiteta na sejo Accessa. Access eno povezavo uporablja za vse povezane tabele istega procesa, katerih povezovalni nizi so (razen gesla) enaki; zato za vse velja identiteta prve povezave. To je opaženo vedenje Accessa, ki ga Microsoft ne dokumentira kot zagotovljenega. Za drugo identiteto znova zaženite Access.
- Seznam blokiranih zamenjav: Prijav in strežniških vlog, ki so za vir podatkov na seznamu blokiranih zamenjav, prehod nikoli ne prevzame, na primer
sysadmin. Seznam je v področju Identitäten na zavihku Sperrliste Identitätswechsel (Seznam blokiranih zamenjav identitete), prikazan kot drevo: vsak vnos je vir podatkov, pod njim so njegove lastnosti. Vnos ustvarite na tem zavihku z Neuer Sperreintrag (Nov blokirani vnos), njegove lastnosti pa na izbranem vnosu z Weitere > Merkmal zum Sperreintrag hinzufügen … (Dodaj lastnost blokiranemu vnosu):login(prijava, z imenom ali SID) alirole(strežniška vloga), po želji šefromaliexcept_fromz omrežjem. - Izklop namesto brisanja: Če pri identiteti ali dodelitvi počistite polje Aktiv, sprememba velja od naslednje zahteve.
- Vidno v podatkovni zbirki:
SESSION_CONTEXT(N'wkl.person')vrne osebo,SESSION_CONTEXT(N'wkl.role')pa identiteto. Tako lahko sprožilci in privzete vrednosti stolpcev zabeležijo, kdo je spremenil podatke.
Sorodne teme
- Referenčni priročnik: Posredovanje identitete in identitete podatkovne zbirke (dokumentacija podatkovnega prehoda)