Avatar billede wolm Nybegynder
08. september 2004 - 10:26 Der er 6 kommentarer og
1 løsning

Opdatering i read-only views

Er i gang med et lille eksperiment:

I SQL Server har jeg et view som jeg har gjort read only (kun SELECT permissions). Det jeg vil gøre er så at lave en form der baserer sig på view'et. Når brugeren vil opdatere i formen, vil jeg "fange" opdateringen og udføre en stored procedure i stedet for.

Kan det lade sig gøre? Mit første forsøg gik ikke så godt... Her får jeg konstant at vide at mit recordset ikke kan updates. Skal jeg i stedet køre unbound?

Grunden til at jeg vil det her, er fordi jeg i view'et join'er over i en rettighedstabel vha. "system_user". På den måde kan jeg lave et administrations interface til brugerne i Access i stedet for at skulle styre SQL servers syrede permissions direkte på databaseobjekterne.

Giver det mening? Bedre forslag til at opnå samme effekt?
Avatar billede madschristensen Nybegynder
08. september 2004 - 10:35 #1
Tja - radikalt anderledes kunne man benytte gruppemedlemskaber i AD til at styre tilladelser. Brug herefter VBA til at forespørge på aktuel bruger / medlemskaber (og hermed rettigheder)
08. september 2004 - 10:43 #2
Hvorfor ikke bare bruge Access' egen sikkerhedstyring oven på SQL serverens?

Eller blot styre læserettighederne når formularen åbnes? Jeg har vist et eksempel liggende her: http://www.makeiteasy.dk/eksempler/Downloads.htm

Det hedder noget med "Login-boks ved opstart..."
Avatar billede wolm Nybegynder
08. september 2004 - 11:28 #3
Sagen er at der ikke må ligge noget sikkerhedsstyring i Access. Databasen må kun tilgås via views (read only) og opdateringer må kun ske via stored procedures.

Vi snakker om flere hundrede brugere og der skal ikke være et separat login til hver af dem i SQL Serveren. Dvs. alle domænebrugere skal have lov til at forbinde til databasen, men view'ene henter kun de data ud du må se, baseret på de rettigheder du har i rettighedstabellen.

Ellers kan kreative brugere forbinde til databasen, uden om Access applikationen, og se/rette følsomme oplysninger.
08. september 2004 - 11:39 #4
Ok, men Access egen sikkerhed er (hvis den implementers rigtigt) lige så sikker som den anden løsning.
Sikkerheden i Access er så stor, at den klart største risiko, er at en bruger aflurer/gætter en anden brugers password eller får adgang via den anden brugers PC. Og den risiko er præcis lige så stor med din løsning som med en ren Access-sikkerhed.

Men lad det nu ligge, hvis du har mere tillid til den anden løsning :o)

For at få din Stored Procedure til at køre, skal den jo have tilladelse til at opdatere i tabellen. Denne tilladelse har du måske fjernet på SQL serveren? Når du kalder SP'en fra Access, har du jo typisk bare brugerens alm. rettigheder, hvorved SP ikke har flere rettigheder end brugeren.
Hvordan kalder du SP'en? Fra en Access-forespørgsel eller fra VBA?
Avatar billede wolm Nybegynder
08. september 2004 - 12:15 #5
Det kan godt være at Access' sikkerhed er god nok, men problemet er at dataene ligger i en SQL server som du kan connecte til med ADO. Så hvis folk opretter forbindelsen direkte til SQL serveren hjælper det jo ikke ret meget at have fin sikkerhed i Access?

Min stored procedure skal have lov til at skrive i tabellerne. Brugeren skal ikke kunne skrive i tabellerne. Alle brugere får Execute rettigheder på proceduren. Inde i proceduren laver jeg så igen mit check på system_user og rettighedstabellen.

Umiddelbart kan jeg se to løsninger:
1) Lave et separat edit/add-skærmbillede hvor jeg udelukkende bruger unbound controls og VBA til at udføre min stored procedure.

2) Dropper Access og laver en web applikation i stedet.

Jeg vil helst undgå 2) da det er en eksisterende Access applikation der skal opgraderes med sikkerhed...
Avatar billede wolm Nybegynder
08. september 2004 - 12:20 #6
Det hører måske med til historien, at jeg skal bruge SQL Server som backend pga. automatiske overførsler fra andre systemer (de nye følsomme data som skal beskyttes).
Avatar billede wolm Nybegynder
08. september 2004 - 13:51 #7
OK -- jeg tror jeg lukker forespørgslen. Det bliver en model 1)-løsning da det faktisk er sådan den gamle applikation fungerer (altså med et separat add/update skærmbillede).

Tak for input.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Udlændinge- og Integrationsministeriet

Contract manager til it-området i Udlændingestyrelsen

IT-Universitetet i København

CIO

Netcompany A/S

IT Consultant

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Sektionschef til Cyber Security Guidance ved Cyberdivisionen i Forsvaret