Toon posts:

[MS SQL] Stored Procedure met kolombeveiliging

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil graag voor de beveiliging van een database gebruik maken van de logins van MS SQL Server. De bedoeling is dat een gebruiker de ene kolom wel te zien krijgt in de applicatie en de andere niet. Dit moet echter zo dynamisch mogelijk zijn. Hierbij heb ik 2 problemen.

1. Met MSSQL kan je rechten in stellen tot op kolomniveau. Als je bijvoorbeeld een tabel TEST hebt met de kolommen test1, test2 en test3 dan kan je toegang weigeren op test3.

Hierdoor krijg je als je SELECT * FROM TEST uitvoert een foutmelding, dat ik geen recht op om test3 te bekijken. Terwijl ik graag wil dat ik wel test1 en test2 te zien krijg, en kolom test3 niet of leeg. Iemand enig idee hoe ik dit voor elkaar krijg.
---------------------------------------------
2. Als je bijvoorbeeld SELECT-rechten denied op een kolom in de tabel test en je voert de volgende stored procedure uit.

CREATE sproc SELECTWATDINGEN
AS
SELECT * FROM TEST

Vervolgens krijg je netjes alle kolommen terug (mits je EXECUTE rechten hebt op de stored procedure) en is de kolom-beveiliging geheel waardeloos geworden.

-----------------
Kan iemand mij helpen met deze problemen?

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Ik zou je willen afraden om je beveiliging op kolomniveau te regelen. Dat is (vaak) een bron van onderhoudsellende. Om gebruikers slechts toegang te geven tot delen van de data kan je imho beter gebruik maken van views (eventueel zelfde namen met verschillende object owner).

Overigens zijn beide zaken die je beschrijft standaardgedrag en ook logisch als je de 'regels' van MSSQL op kent. Kijk voor meer informatie over het tweede punt in de Books Online onder 'ownership chains'.

Today's subliminal thought is:


Verwijderd

Topicstarter
Maar juist die onderhoudsellende wil ik voorkomen. Ik wil dynamisch kunnen instellen via een beheer-tool welke kolommen wel en niet mogen worden bekeken/geschreven. Door het in views te doen, moet ik de views dynamisch maken, wat dus betekent dat ik "de ellende" alleen maar verplaats.

De zaken zijn ook logisch, maar weet iemand een goede implementatie om met inachtneming van deze regels toch een dynamische beheertool te knutselen.

  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

als de instellingen niet te vaak wijzigen (en daar ga ik dan even van uit)
de beheertool gewoon de views opnieuw laten genereren.

(ben wel benieuwd hoe je in je applicatie omgaat met dynamisch aantal kolommen )

Of niet natuurlijk...