haschked
Goto Top

DB mit neuem Schema erstellen

Hallo,
ich habe im SQL Server 2022 Management Studio eine DB erstellt. Wenn ich da jetzt mein Skript laufen lasse und Tabellen zu erstellen werden diese im Standard DBO Schema angelegt.
Ich habe ein neues Schema angelegt.
Ist es möglich die DB wenn ich die Tabellen neu erstelle in diesem neuen Schema zu erstellen und wenn ja wie mache ich das?

Danke + VG
Dennis

Content-ID: 41740337735

Url: https://administrator.de/forum/db-mit-neuem-schema-erstellen-41740337735.html

Ausgedruckt am: 22.12.2024 um 07:12 Uhr

em-pie
em-pie 18.04.2024 um 08:51:32 Uhr
Goto Top
Moin,

USE SCHEMA() hast du sicherlich schon versucht, richtig?
https://learn.microsoft.com/en-us/archive/usql/ddl/schemas/use-schema
HaschkeD
HaschkeD 18.04.2024 um 09:03:15 Uhr
Goto Top
Ich habe ein fertiges SQL Skript vom Hersteller bekommen. Wenn ich das ausführe legt er mir die DB Tabellen als DBO an.
Muss ich das dann innerhalb des Skriptes anpassen?
Oder ist es möglich wenn ich eine neue DB erstellt habe da zu sagen er soll Schema XYZ nehmen und wenn ich dann das Skript laufen lasse das er mir das dann mit Schema XYZ anlegt?
12168552861
12168552861 18.04.2024 aktualisiert um 09:39:10 Uhr
Goto Top
HaschkeD
HaschkeD 18.04.2024 um 09:39:56 Uhr
Goto Top
Befehl ausgeführt:
ALTER USER myuser WITH DEFAULT_SCHEMA=newschema EXECUTE AS USER='myuser'

Anschl.
SELECT SCHEMA_NAME()

Immer noch dbo als Schema face-sad
12168552861
12168552861 18.04.2024 aktualisiert um 09:41:55 Uhr
Goto Top
Zitat von @HaschkeD:
Immer noch dbo als Schema face-sad

Normal du änderst ja das DEFAULT-SCHEMA, das gilt also nur für neu erstellte Tabellen nicht für bereits vorhandene.
HaschkeD
HaschkeD 18.04.2024 um 09:51:57 Uhr
Goto Top
Habe die Tabellen in der DB gelöscht und per Skript nochmal neu erstellen lassen. Immer noch dbo
12168552861
12168552861 18.04.2024 aktualisiert um 09:55:56 Uhr
Goto Top
Dann hast du den falschen User beim Anlegen verwendet. Klappt hier einwandfrei. Du kannst auch wie oben beschrieben die GUI dafür nutzen.
HaschkeD
HaschkeD 18.04.2024 um 10:00:39 Uhr
Goto Top
Das passt....trotzdem dbo und kein smartfix face-sad
unbenannt
12168552861
12168552861 18.04.2024 aktualisiert um 10:10:12 Uhr
Goto Top
Hat der User denn überhaupt das Recht das Schema zu nutzen? Schemas > smartfix > Kontextmenü:Eigenschaften > Besitzer / Berechtigungen
Wie sieht denn das Skript aus, ist da vielleicht das dbo Schema fest hinterlegt?
HaschkeD
HaschkeD 18.04.2024 um 10:10:05 Uhr
Goto Top
Die Berechtigung scheint zu fehlen.
Wenn ich den User hinzufüge welche Berechtigung benötigt er?
unbenannt
12168552861
12168552861 18.04.2024 aktualisiert um 10:12:58 Uhr
Goto Top
Wer ist Besitzer des Schemas? Definiere den User mal als Besitzer auf der ersten Seite der Eigenschaften unter "Allgemein".
HaschkeD
HaschkeD 18.04.2024 um 10:17:35 Uhr
Goto Top
Schemabesitzer ist der SQL User SmartFix
12168552861
12168552861 18.04.2024 aktualisiert um 10:35:26 Uhr
Goto Top
Dann wird es zu 99,9% am Skript des Herstellers liegen. Da wird irgendwo dbo fest hinterlegt sein.
Kannst du ja ganz einfach testen indem du mal manuell mit dem User in der DB eine neue Tabelle erstellst, wenn die dann das neue Schema hat ist das Skript schuld.
HaschkeD
HaschkeD 18.04.2024 um 10:43:21 Uhr
Goto Top
Skript habe ich mal durchsucht. Da ist kein dbo zu finden.
Neue Tabelle erstellt. Standard Schema dbo.
Ich versteh es nicht face-sad
12168552861
12168552861 18.04.2024 aktualisiert um 10:44:13 Uhr
Goto Top
DB Dienst mal neu starten.
HaschkeD
HaschkeD 18.04.2024 um 10:48:41 Uhr
Goto Top
OK. Das muss ich aber Abends machen..........Hängen noch andere DB drauf.
Danke schonmal...halte dich auf dem laufenden......
12168552861
Lösung 12168552861 18.04.2024 aktualisiert um 11:09:31 Uhr
Goto Top
Neue Tabelle erstellt. Standard Schema dbo.
Nur zum Verständnis, wenn du im Management-Studio eine neue Tabelle über die GUI erstellst wird der User dafür verwendet mit dem du dich dort angemeldet hast. Wenn das also ein Admin war und nicht der User "smartfix" ist klar warum weiterhin "dbo" verwendet wird, denn du hast ja nur das Default-Schema für diesen User geändert.
HaschkeD
HaschkeD 18.04.2024 um 11:28:24 Uhr
Goto Top
Ahhhh, logisch........schau gleich nochmal dabei face-smile Melde mich........
HaschkeD
HaschkeD 18.04.2024 um 11:50:09 Uhr
Goto Top
Das wars...es hat geklappt face-smile Vielen Dank
12168552861
12168552861 18.04.2024 um 11:56:57 Uhr
Goto Top
Nessuna causa