2016-04-27 6 views
3

Ich habe ein Problem mit SQL Server 2014, nachdem ich von einem einjährigen Abwesenheitsjahr zurückgekommen bin.Der Benutzer erstellt keine Tabellen mit dem zugewiesenen Standardschema in SQL Server 2014

Ich habe das Schema "dba" erstellt und es den Standardschemata der Benutzer in der Datenbank zugewiesen, die an die Logins auf dem Server angehängt sind, z. Login1

So Login1 Benutzer haben ein Standardschema von dba

Das Problem, das ich habe, ist, dass, wenn ich eine Tabelle erstellen, mit:

Create table Test (Test int) 

Sie die Tabelle als schafft dbo.Test

jedoch, wie ich als angemeldet bin sagen Login1, erwarte ich es als zu erstellen dba.Test

Wenn ich diesen Code ausführen:

Execute as user = 'Login1' 
Create Table Test (Test int) 

Dann habe ich das gewünschte Ergebnis der dba.Test gegeben bin

Ich bin nicht sicher, welche weiteren Informationen können Ihnen helfen mir dabei helfen, aber wenn Sie mich lassen Ich werde es liefern.

Vielen Dank im Voraus.

+0

Das ist sehr ungewöhnlich ist. Vielleicht entfernen Sie die DDL-Berechtigungen für das Dbo-Schema für Login1? –

+2

Können Sie diese Anweisung in beiden Kontexten ausführen? SELECT CURRENT_USER –

+2

Versuchen Sie SELECT SCHEMA_NAME() in beiden Kontexten auszuführen, um das aktuelle aktive Standardschema zu sehen. – Reboon

Antwort

0

Vielen Dank für Ihre Hilfe. Nach dem Versuch, Select Current_User und erkennen, dass mein Login immer noch dbo anstelle von Login1, dass etwas war definitiv nicht richtig.

Ich habe Folgendes gelesen und erkannte das Problem war, dass Login1 Sysadmin Rolle zugewiesen wurde und dies auf Dbo zugeordnet. Jede Ebene unterhalb dieser Karten Ihre Benutzer selbst, damit ich einfach ihre Rolle zu server geändert und schwupps es anfing zu arbeiten:

https://technet.microsoft.com/en-us/library/aa905208(v=sql.80).aspx