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-Key: 41740337735

Url: https://administrator.de/contentid/41740337735

Printed on: May 1, 2024 at 00:05 o'clock

Member: em-pie
em-pie Apr 18, 2024 at 06:51:32 (UTC)
Goto Top
Moin,

USE SCHEMA() hast du sicherlich schon versucht, richtig?
https://learn.microsoft.com/en-us/archive/usql/ddl/schemas/use-schema
Member: HaschkeD
HaschkeD Apr 18, 2024 at 07:03:15 (UTC)
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?
Mitglied: 12168552861
12168552861 Apr 18, 2024 updated at 07:39:10 (UTC)
Goto Top
Member: HaschkeD
HaschkeD Apr 18, 2024 at 07:39:56 (UTC)
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
Mitglied: 12168552861
12168552861 Apr 18, 2024 updated at 07:41:55 (UTC)
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.
Member: HaschkeD
HaschkeD Apr 18, 2024 at 07:51:57 (UTC)
Goto Top
Habe die Tabellen in der DB gelöscht und per Skript nochmal neu erstellen lassen. Immer noch dbo
Mitglied: 12168552861
12168552861 Apr 18, 2024 updated at 07:55:56 (UTC)
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.
Member: HaschkeD
HaschkeD Apr 18, 2024 at 08:00:39 (UTC)
Goto Top
Das passt....trotzdem dbo und kein smartfix face-sad
unbenannt
Mitglied: 12168552861
12168552861 Apr 18, 2024 updated at 08:10:12 (UTC)
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?
Member: HaschkeD
HaschkeD Apr 18, 2024 at 08:10:05 (UTC)
Goto Top
Die Berechtigung scheint zu fehlen.
Wenn ich den User hinzufüge welche Berechtigung benötigt er?
unbenannt
Mitglied: 12168552861
12168552861 Apr 18, 2024 updated at 08:12:58 (UTC)
Goto Top
Wer ist Besitzer des Schemas? Definiere den User mal als Besitzer auf der ersten Seite der Eigenschaften unter "Allgemein".
Member: HaschkeD
HaschkeD Apr 18, 2024 at 08:17:35 (UTC)
Goto Top
Schemabesitzer ist der SQL User SmartFix
Mitglied: 12168552861
12168552861 Apr 18, 2024 updated at 08:35:26 (UTC)
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.
Member: HaschkeD
HaschkeD Apr 18, 2024 at 08:43:21 (UTC)
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
Mitglied: 12168552861
12168552861 Apr 18, 2024 updated at 08:44:13 (UTC)
Goto Top
DB Dienst mal neu starten.
Member: HaschkeD
HaschkeD Apr 18, 2024 at 08:48:41 (UTC)
Goto Top
OK. Das muss ich aber Abends machen..........Hängen noch andere DB drauf.
Danke schonmal...halte dich auf dem laufenden......
Mitglied: 12168552861
Solution 12168552861 Apr 18, 2024 updated at 09:09:31 (UTC)
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.
Member: HaschkeD
HaschkeD Apr 18, 2024 at 09:28:24 (UTC)
Goto Top
Ahhhh, logisch........schau gleich nochmal dabei face-smile Melde mich........
Member: HaschkeD
HaschkeD Apr 18, 2024 at 09:50:09 (UTC)
Goto Top
Das wars...es hat geklappt face-smile Vielen Dank
Mitglied: 12168552861
12168552861 Apr 18, 2024 at 09:56:57 (UTC)
Goto Top
Nessuna causa