Umgang mit dem DDL Verhalten von Anweisungen auf der Grundlage eines standardmäßigen oder expliziten Schemas - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Umgang mit dem DDL Verhalten von Anweisungen auf der Grundlage eines standardmäßigen oder expliziten Schemas

Bei Verwendung einer AD-authentifizierten Sitzung wird das Standardschema für die aktuelle Sitzung durch die folgenden Bedingungen bestimmt:

  • Wenn ein einzelner Datenbankbenutzer existiert, wird das Standardschema des Benutzers als Standardschema der aktuellen Sitzung betrachtet.

  • Wenn das Standardschema für einen Gruppendatenbankbenutzer existiert, wird das Standardschema des Gruppendatenbankbenutzers als das Standardschema der aktuellen Sitzung mit der kleinsten Prinzipal-ID betrachtet.

Grundlegendes zum CREATE DDL Verhalten von Anweisungen

Wenn in der CREATE DDL Anweisung kein explizites Schema angegeben ist, erfolgt die Objekterstellung im Standardschema der aktuellen Sitzung. Wenn nicht bestimmt werden kann, ob das Schema standardmäßig oder explizit ist, gibt die DDL Anweisung den folgenden Fehler aus:

"Babelfish Unsupported Command : Schema required for CREATE DDLs when connecting with Active Directory Group authentication. Assign default schema to group user or specify schema in command."
Beispiel : Das Standardschema für Windows-Gruppenbenutzer ist nicht vorhanden

Der Windows-Gruppenbenutzer [corp\ accounts-group] hat ein NULL Standardschema und der AD-Benutzer user1 versucht, das auszuführen, DDL ohne das Schema explizit anzugeben. Da es für Benutzer1 keinen individuellen Windows-Anmeldenamen und -benutzer gibt, erhält dieser Benutzer nur die Datenbankberechtigungen des Windows-Gruppenbenutzers [corp\ accounts-group].

1> create TABLE t2(a int); 2> GO Msg 33557097, Level 16, State 1, Server db-inst, Line 1 Babelfish Unsupported Command : Schema required for CREATE DDLs when connecting with Active Directory Group authentication. Assign default schema to group user or specify schema in command.
Anmerkung

Für den AD-Benutzer user1 sind kein individueller Windows-Anmeldename und -benutzer vorhanden

Beispiel : Für Windows-Gruppenbenutzer ist ein Standardschema vorhanden

Erstellen Sie mithilfe von sysadmin einen Windows-Gruppenbenutzer für die Anmeldung bei [corp\ accounts-group] mit dem Standardschema.

1> CREATE USER [corp\accounts-group] FOR LOGIN [corp\accounts-group] WITH DEFAULT_SCHEMA = sch_acc; 2> GO 1> CREATE SCHEMA sch_acc AUTHORIZATION [gad\accounts-group]; 2> GO 1> SELECT name, principal_id, default_schema_name FROM sys.database_principals WHERE name = 'corp\accounts-group'; 2> GO name principal_id default_schema_name ------------------ ------------ ------------------- corp\accounts-group 24162 sch_acc (1 rows affected)

Versuchen Sie, mithilfe des AD-Benutzers user1 ein Objekt zu erstellen, ohne das Schema explizit anzugeben. Tabelle t2 wird im Standardschema des [corp\ accounts-group] Windows-Gruppenbenutzers erstellt. Der Besitzer dieses Objekts ist derselbe wie der Besitzer des Schemas sch_acc.

1> CREATE TABLE t_group(a int); 2> GO 1> SELECT name, schema_name(schema_id) FROM sys.objects WHERE name like 't_group'; 2> GO name schema_name ------- ----------- t_group sch_acc (1 rows affected)
Anmerkung

Für den AD-Benutzer user1 gibt es keinen individuellen Windows-Anmeldenamen und -benutzer

Beispiel : Ein einzelner Datenbankbenutzer ist auch für einen AD-Benutzer vorhanden

Wenn für einen AD-Benutzer auch ein einzelner Datenbankbenutzer existiert, werden die Objekte immer in dem Schema erstellt, das dem einzelnen Datenbankbenutzer zugeordnet ist. Wenn das Schema für den Datenbankbenutzer nicht existiert, wird das DBO-Schema verwendet. Erstellen Sie einen individuellen Windows-Anmelde- und Datenbankbenutzer für den AD-Benutzer user1. Stellen Sie mithilfe eines TDS Sysadmin-Logins eine Connect über den Endpunkt her

1> CREATE LOGIN [corp\user1] FROM WINDOWS; 2> GO 1> CREATE USER [corp\user1] FOR LOGIN [corp\user1] WITH DEFAULT_SCHEMA = sch1; 2> GO 1> CREATE SCHEMA sch1 AUTHORIZATION [corp\user1]; 2> GO 1> SELECT name, default_schema_name FROM sys.database_principals WHERE name = 'corp\user1'; 2> GO name default_schema_name --------- ------------------- corp\user1 sch1 (1 rows affected)

Stellen Sie mit dem AD-Benutzer user1 eine Verbindung her und versuchen Sie, ein Objekt zu erstellen, ohne das Schema explizit anzugeben. Tabelle t2 wird im Schema sch1 erstellt. Beachten Sie auch, dass der Besitzer dieses Objekts mit dem Besitzer von Schema sch1 identisch sein wird.

1> CREATE TABLE t2(a int); 2> GO 1> SELECT name, schema_name(schema_id) FROM sys.objects WHERE name like 't2'; 2> GO name schema_name ---- ----------- t2 sch1 (1 rows affected)