Laden...

Bei Tabellenerstellung in C# beginnt Tabellenname immer mit "guest.tabellenname"

Erstellt von oehrle vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.714 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 5 Jahren
Bei Tabellenerstellung in C# beginnt Tabellenname immer mit "guest.tabellenname"

verwendetes Datenbanksystem: <sqlespress 2014>

Hallo, habe folgendes Problem und weiss nícht genau wie ich das einstellen soll.

Ich schreibe gerade eine Applikation mit der ich Daten in eine Datenbank schreibe. Ich erstelle in C# die Datentabelle und nutze dazu SMO.
Nun habe ich das Problem, dass bei der Tabelle immer "guest." vorangeschreiben wird, anstatt wir gewohnt "dbo.".

Zur Datenbank: Diese ist lokal auf meinem SQL-Server.
Ich habe einen User angelegt (Sqlseitiger User), der das Schema "dbo" hat und sqlreader / sqlwriter / dbo Berechtigung hat.

Noch eine andere Sache, was mich verwirrt: Melde ich mit dem Server Managment an, als dieser DB-User, und lege eine Tabelle manuell an, dann passt das ganze. Es wird dann "dbo." vorangestellt.

Hat jemand eine Idee woran das liegen kann.

T
2.224 Beiträge seit 2008
vor 5 Jahren

Klingt erst einmal direkt nach einem Berechtigungsfehler.
Wenn guest eine Tabelle anlegen darf, soltlest du dringend die Berechtigungen prüfen.
Im schlimmsten Fall kann guest auch deine DB droppen, was dann totaler Datenverlust wäre.
Oder die Daten könnten auch von guest gelesen werden, was unerlaubten Zugriffen Tür und Tor öffnet.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 5 Jahren

Hallo, guest hat ein rotes Kreuz als Icon, und in den Schemas hat er eigentlich nur public.
Der user den ich verwende habe ich mit dem Passwort angelegt.
In meiner Datenbank habe ich ihm reader /writer und dbo gegeben.
Ich weiss nun wirklich nicht wo diese Einstellung schief gegangen sein kann.

P
1.090 Beiträge seit 2011
vor 5 Jahren

Schau mal mit dem SQL Managment Studio unter Sicherheit\Anmeldungen dein Benutzer\Eigenschaftzen und da unter Benutzer Zuordnung nach dem Standardschema der Datenbank.

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 5 Jahren

Hallo Palin, sorry ich hatte bis letzte Woche Urlaub.
Nun kann ich da wieder einsteigen, oder eher gesagt ich muss. Unser Admin der die ganzen Server wartet und sich damit auch auskennt ist noch längere Zeit ausser Gefecht.

Ich habe mal den SQlExpress mit MMO 2017 auf meinem Rechner istalliert.
Da habe ich genau das gleiche Problem.

Hier mal die Einsellungen, kannst du dazu was sagen was falsch sein kann?

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 5 Jahren
Gelöst

Problem gelöst. Aber ich denke es ist ein Problem von MS.
Die Zuweisung für den Sql-User (nicht Windowsauthenifizierung) mit der
"Default Database" ist das Problem. Da mußte diese aktuelle Datenbank zugewiesen werden. Hatte das auch in einem Forum gelesen.

Habe das dann mal auf meinem lokalen SQL-Express 2014 getestet, da war dann auch das gleiche Problem.

Ich weiss jetzt nur nicht wie das ist, wenn ich weitere DB's habe, in der dieser User dynamische Änderungen durchführt. Laut dem Forumsbericht sollte dann ein neue User angelegt werden, das habe ich aber nicht getestet, vielleicht ist der letzte Satz auch Quatsch.

16.842 Beiträge seit 2008
vor 5 Jahren

Sofern Du von sp_defaultdb sprichst; das ist ein Relikt, das mit der kommenden SQL Server Version entfernt wird.
In Forks wie Azure SQL gibts das schon gar nicht mehr.