![]() |
Datenbank: Firebird • Version: 3 • Zugriff über: UniDAC 8.1.2
UniDAC Firebird Roles Casesensitive
Tag!
Mit Firebird SQL Dialect 3 können Roles auf Case-Sensitive sein wie Tabellen- und Feldnamen auch. Mit UniDAC (hier: 8.1.2) funktioniert das aber nicht. Firebird 3:
Code:
und in meinem Quellcode:
CREATE ROLE "Testrole";
GRANT ALL ON "Testtable" TO ROLE "Testrole";
Code:
Das funktioniert nicht, der User hat keine Rechte und CURRENT_ROLE in Firebird ist NONE.
DB.SpecificOptions.Values['Role']:='"Testrole"';
Wenn ich zu Roles ohne Anführungszeichen wechsle gehts: Firebird 3:
Code:
und in meinem Quellcode:
CREATE ROLE TESTROLE;
GRANT ALL ON "Testtable" TO ROLE TESTROLE;
Code:
Das geht wie erwartet.
DB.SpecificOptions.Values['Role']:='TESTROLE';
Aber die Roles sind von einer anderen Applikation als case sensitive vorgegeben - also muss das sein. Weiß jemand wie das mit UniDAC geht? Danke Luggi |
AW: UniDAC Firebird Roles Casesensitive
Die Schreibweise mit den doppelten Anführungszeichen halte ich für falsch.
DB haben ihre (meist etwas) unterschiedlichen Eigenarten, um so etwas wie Case Sensivity und den ganzen Kram zu ermöglichen (Sonderzeichen aller Art, Leerzeichen, Emoticons) Doppelte Anführungszeichen sind dafür nicht ungewöhnlich. Wie eine Client Lib damit umgeht, ist noch was anderes. Ich hab keinen Zugriff auf die von Dir genannte. Mich wundert es nicht, dass Dein Versuch nicht funktioniert. Auf den Punkt: Ein "andere App", die solche Vorgaben macht, kann höchstens logische Rollen meinen und die physischen einer DB. Ich würde ein Mapping anlegen, dass den Zusammenhang definiert und mit den klassischen Mitteln arbeiten. |
AW: UniDAC Firebird Roles Casesensitive
Zitat:
Code:
und du hättest drei verschiedene Felder gewählt.
SELECT "Feldname", "FeldName", "feldname" FROM "Tabelle";
Das gleiche gilt für Roles. Wird ein externes Datenbank-Tool wie z.B. RedAdmin verwendet und man gibt die Roles genau so an wie ich das mache (also "Role") dann geht alles wunderbar. Zitat:
Lieber wäre mir die Roles einfach so zu benutzen wie vorgesehen und nicht einen offensichtlichen Bug (bei mir oder bei UniDAC) mit einer Krücke zu umgehen. Gruß Luggi |
AW: UniDAC Firebird Roles Casesensitive
Zitat:
Ebenso fraglich scheint mir der Wunsch, Datenbankobjekte so nennen zu wollen, wie ein drittes Programm es "vorgibt". Die Schreibweise von Objekten ist eine Implementierungsfrage, ob es um Rollen oder um Tabellen geht. Es handelt sich nicht um Daten, über die man die volle Hoheit haben sollte. Sinn macht das eigentlich nur, wenn man versucht, eine Datenbank-Migration plant und einem bestehenden Programm eine andere DB unterjubeln will. Was spricht gegen ein Mapping? Du bennenst Deine Rollen optisch, aus Nutzerperspektive genau so wie gewohnt und verwendest intern was anderes. Es bietet m.E. nur Vorteile, man könnte von da an die Rollenbezeichnungen bspw. übersetzen. |
AW: UniDAC Firebird Roles Casesensitive
Zitat:
Und mit anderen Tools funktioniert es - übrigens auch mit anderen Access-Components wie z.B. UIB. Und bevor der Vorschlag kommt: Das ganze Ding von UniDAC auf was anderes umzustellen steht nicht zur Debatte - der Aufwand wäre definitiv zu groß. Zitat:
Zitat:
Bugs nicht zu suchen und zu fixen sondern zu umgehen ist meiner Meinung nach extrem schlechter Stil und verantwortlich für einen ganzen Haufen Schrott-Software da draussen. Die Frage bleibt also: Weiß jemand wie man UniDAC beibringt eine Role mit Anführungszeichen zu übernehmen? Danke Luggi |
AW: UniDAC Firebird Roles Casesensitive
Aktuell ist die Unidac 8.1.3 , schon mal ausprobiert ?
|
AW: UniDAC Firebird Roles Casesensitive
Zitat:
Hast denn mal geschaut, wie das DB.SpecificOptions.Values in der DB ankommt? (SQL-Log, Activities, ...) Die Möglichkeiten, die ich dann sehen würde: * direkt via SQL-Statement die Rolle in der Connection setzen (AfterConnect) * oder es müsste an der Klasse irgendwo ein Property/Option geben, wo man seine Eingaben als case-sensitive markiert (falls der hersteller hier z.B. mit Lowercase bissl nachgeholfen hat) |
AW: UniDAC Firebird Roles Casesensitive
ot
Zitat:
Du sagst es sei ein Bug. Wenn Du Dir so sicher bist, muss er sich ja bei ComponentSource finden. Wenn nicht meldet man ihn. "Andere Software kann das" ist übrigens kein Hinweis darauf, dass es sich bei der vorliegenden Software um einen Bug handelt. Ich sprach von "nicht implementiert". Ich habe hier noch nie von jemand verlangt, alles neu zu machen. "Verlangt" ist eh Quatsch, es sind meistens wohlfeile Vorschläge, die unrealistisch sind. Es geht idR um pragmatische Alternativen. Angenommen es ist ein Bug, ist doch einfach die Frage, wie schnell Du als Kunde einen Fix erhälst. Ein Workaround ist demnach nur bedingt eine Stilfrage. Apropos Stil: Bei Objektnamen (in der DB und anderswo) auf die Möglichkeit zu verzichten, nationale Spracheigenarten zu verwenden, halte ich nach wie vor für einen sehr guten Weg, Problemen aus dem Weg zu gehen (ohne Funktionseinbuße). Fachlich bleibe ich dabei, ich "streite" mich nicht mit einer anderen Anwendung um Implementierungsdetails bzw. gebe die vor. Eine Rolle zu kopieren und anders zu benennen wäre eine sehr unaufwändige Lösung, vielleicht beherrscht Firebird auch Rollendefinitionen, die auf Rollen basieren... |
AW: UniDAC Firebird Roles Casesensitive
Zitat:
Zitat:
Zitat:
Und die Role nachträglich - also bei aufrechter Connection - zu ändern wird erst ab Firebird 4 unterstützt werden. Zitat:
Ich habe schon einen Support-Case bei DevArt aufgemacht. Aber auch dort ist vermutlich Wochenende... Aber das kennen ja sicher noch andere, daß genau dann, wenn beim Support Wochenende ist die Arbeit hier trotzdem unter den Nägeln brennt. Und dummerweise hab ich mit das Roles-Thema für ziemlich am Ende des Projektes aufgehoben... Danke Luggi |
AW: UniDAC Firebird Roles Casesensitive
Für alle die später mal auf diesen Thread stossen:
Es war ein Bug in UniDAC. Devart hat einen Hotfix zur Verfügung gestellt - damit geht es wie gewünscht. Gruß Luggi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz