AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQL Server 2012: Zugriffsberechtigung abhängig vom Wert einer Spalte???
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Server 2012: Zugriffsberechtigung abhängig vom Wert einer Spalte???

Ein Thema von romber · begonnen am 28. Sep 2013 · letzter Beitrag vom 3. Okt 2013
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: SQL Server 2012: Zugriffsberechtigung abhängig vom Wert einer Spalte???

  Alt 3. Okt 2013, 10:33
@ Bernhard: Ok, da hab ich etwas geschlampt, die eigentliche Antwort hat ja bereits generic geliefert. Man benötigt Grant Angaben für den View.
Der View ermöglicht die spaltenabhängige Filterung und löst das Problem.
Lesen schon, aber wie ist es mit dem schreiben wenn er nur entsprechende Datensätze auch schreiben darf?

Meine Aussage zu der Spaltenberechtigungen, die darüber hinaus direkt auf Tabellenebene möglich sind, ist lediglich eine Entgeegnung zu Deiner Aussage, dass DB dafür (".. so hohe Granularität der Zugriffsrechte..") nicht gemacht sein sollen.
Die Aussage bezieht sich auch die obige Notwendigkeit Rechte entsprechend auf Zellenwerte zu vergeben. Da kommt man mit Grants nicht weit.
Und der Alttag (ERP und PLM's zeigens) ist ja das man die so auch benötigt.
Sachbearbeiter A darf nur Stammdaten bearbeiten die im Bereich Elektrik liegen
Sachbearbeiter B darf keine Stücklisten bearbeiten welche freigegeben sind, dies müssen dann von Sachbearbeiter C als neue Version wieder in den Zustand "in Arbeit" gesetzt werden.
Wie würden hier GRANDs auf Datenbankebene aussehen?

Zugriffs-API, Lizenzbestimmungen und Herstellergarantie sind natürlich zu berücksichtigen, wenn man ein System gekauft hat. Ob das die Regel ist, wage ich zu bezweifeln.
Ich nicht. Bei SAP-Installationen wirst du oft nur direkten Tabellenzugriff (als mit Schreiben) bekommen wenn du das über die Geschäftsführung als Weisung an die IT bekommst. Die IT wird hier nicht die Gefahr eingehen das wegen eines Programmierfehlers das Werk stundenlang steht.

Es gibt sicher genügend Firmen, die selbst (eigenverantwortlich) Datenhaltung und Verarbeitung betreiben und volle Hoheit darüber haben.
Als Eigen-SW und keine Kauf-SW?

Auch Standardsoftwarehersteller haben anwendungsintern die Problemstellung, Zugriffssicherheit zu bewerkstelligen. Ein wasserdichtes Datenmodell ist auch da der beste Weg.
Haben wir. Wir haben 2-3 Usergruppen welche relativ einfache Rechtemodelle haben. Alles andere wird in der Anwendung erledigt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#12

AW: SQL Server 2012: Zugriffsberechtigung abhängig vom Wert einer Spalte???

  Alt 3. Okt 2013, 13:39
@ Bernhard: Ok, da hab ich etwas geschlampt, die eigentliche Antwort hat ja bereits generic geliefert. Man benötigt Grant Angaben für den View.
Der View ermöglicht die spaltenabhängige Filterung und löst das Problem.
Lesen schon, aber wie ist es mit dem schreiben wenn er nur entsprechende Datensätze auch schreiben darf?
Das kann auf verschiedenen Wegen sichergestellt werden, z.B. mittels "with check" im Create View statement stellt man sicher, dass Update oder Insert nicht die Where Kriterien verletzt, naheliegend wäre auch eine Stored Procedure für insert/update, die das sicherstellt.

Meine Aussage zu der Spaltenberechtigungen, die darüber hinaus direkt auf Tabellenebene möglich sind, ist lediglich eine Entgeegnung zu Deiner Aussage, dass DB dafür (".. so hohe Granularität der Zugriffsrechte..") nicht gemacht sein sollen.
Die Aussage bezieht sich auch die obige Notwendigkeit Rechte entsprechend auf Zellenwerte zu vergeben. Da kommt man mit Grants nicht weit.
Und der Alttag (ERP und PLM's zeigens) ist ja das man die so auch benötigt.
Sachbearbeiter A darf nur Stammdaten bearbeiten die im Bereich Elektrik liegen
Sachbearbeiter B darf keine Stücklisten bearbeiten welche freigegeben sind, dies müssen dann von Sachbearbeiter C als neue Version wieder in den Zustand "in Arbeit" gesetzt werden.
Wie würden hier GRANDs auf Datenbankebene aussehen?
Mit den oben beschriebenen Möglichkeiten lässt sich das bewerkstelligen. Was Du schilderst geht aber teilweise in den Bereich Business Logik, work flow. Wenn hier absehbar ist (oder gar systematisch vorgegeben), dass häufige Veränderungen auftreten, ist das Datenmodell ungeeignet, das abzubilden. Davon ist aber im vorliegenden Fall nicht die Rede gewesen.

Zugriffs-API, Lizenzbestimmungen und Herstellergarantie sind natürlich zu berücksichtigen, wenn man ein System gekauft hat. Ob das die Regel ist, wage ich zu bezweifeln.
Ich nicht. Bei SAP-Installationen wirst du oft nur direkten Tabellenzugriff (als mit Schreiben) bekommen wenn du das über die Geschäftsführung als Weisung an die IT bekommst. Die IT wird hier nicht die Gefahr eingehen das wegen eines Programmierfehlers das Werk stundenlang steht.
Äh, ich hab ja geschrieben, dass die Lizenzbestimmungen usw. einzuhalten sind. Wer an oder besser in SAP rumschraubt ist sowieso selber schuld. Da wär mir persönlich auch das Einverständnis der GF egal, die müssten mich schon "zwingen". Allein die Frage, was mir beim nächsten SAP Update alles um die Ohren fliegt, halte ich schon für nicht zu beantworten.

Es gibt sicher genügend Firmen, die selbst (eigenverantwortlich) Datenhaltung und Verarbeitung betreiben und volle Hoheit darüber haben.
Als Eigen-SW und keine Kauf-SW?
Genau, davon rede ich z.B.

Auch Standardsoftwarehersteller haben anwendungsintern die Problemstellung, Zugriffssicherheit zu bewerkstelligen. Ein wasserdichtes Datenmodell ist auch da der beste Weg.
Haben wir. Wir haben 2-3 Usergruppen welche relativ einfache Rechtemodelle haben. Alles andere wird in der Anwendung erledigt.
[/QUOTE]
Prima, solange es DB Bordmittel gibt, Missbrauch oder Programmierfehler zu verhindern, kann man die doch ganz entspannt einsetzen.

Um es mal klar zu sagen. Die Frage des TE roch nicht gerade danach, dass eine Mittelschicht eingesetzt wird. Eine solche (generell) vorzuschlagen, scheint mir halt so pauschal unpassend bzw. nicht unbedingt hilfreich für den TE. Oder eben in diesem Fall hier Kanonen auf Spatzen. Und wie ich schrieb, dass RDBMS für sowas nicht gedacht, gemacht, zu gebrauchen sind, ist halt eine sehr fragwürdige Aussage.

Ich glaub, das geht aber hier schon deutlich Richtung OT. Können wir aber gern in einem anderen Thread diskutieren.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: SQL Server 2012: Zugriffsberechtigung abhängig vom Wert einer Spalte???

  Alt 3. Okt 2013, 15:28
Das kann auf verschiedenen Wegen sichergestellt werden, z.B. mittels "with check" im Create View statement stellt man sicher, dass Update oder Insert nicht die Where Kriterien verletzt, naheliegend wäre auch eine Stored Procedure für insert/update, die das sicherstellt.
Und wie kompliziert wird das? Vor allem Aufwändig wenn man das für alle Unterstützten DBMS realisieren müsste.

Mit den oben beschriebenen Möglichkeiten lässt sich das bewerkstelligen. Was Du schilderst geht aber teilweise in den Bereich Business Logik, work flow. Wenn hier absehbar ist (oder gar systematisch vorgegeben), dass häufige Veränderungen auftreten, ist das Datenmodell ungeeignet, das abzubilden.
Wirklich? Glaube ich nicht das das so eine auf DBMS-Mitteln basierende Rechtevergabe noch eine wartbare SW darstellt.

Davon ist aber im vorliegenden Fall nicht die Rede gewesen.
Wir wissen nicht wie komplex die Anwendung ist die realisert ist/werden soll.

Prima, solange es DB Bordmittel gibt, Missbrauch oder Programmierfehler zu verhindern, kann man die doch ganz entspannt einsetzen.
2-3 DB-Gruppen ist was anderes als das was ein ERP oder ein PLM als Rechtesystem benötigt.

Um es mal klar zu sagen. Die Frage des TE roch nicht gerade danach, dass eine Mittelschicht eingesetzt wird. Eine solche (generell) vorzuschlagen, scheint mir halt so pauschal unpassend bzw. nicht unbedingt hilfreich für den TE. Oder eben in diesem Fall hier Kanonen auf Spatzen. Und wie ich schrieb, dass RDBMS für sowas nicht gedacht, gemacht, zu gebrauchen sind, ist halt eine sehr fragwürdige Aussage.
Stimmt. Wir wissen nicht wie komplex das Gesamtsystem ist. Wenn es nur um eine solche Anforderung geht ist eine View z.B. ganz gut. Will man diese Methode für eine komplexere Anwendung als Pattern einsetzen ist man m. E. auf dem falschen weg.

Können wir aber gern in einem anderen Thread diskutieren.
Wäre eine möglichkeit.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz