Teilen über


ANWENDUNGSROLLE ÄNDERN (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Ändert den Namen, das Kennwort oder das Standardschema einer Anwendungsrolle.

Transact-SQL-Syntaxkonventionen

Syntax

ALTER APPLICATION ROLE application_role_name
    WITH <set_item> [ , ...n ]

<set_item> ::=
    NAME = new_application_role_name
    | PASSWORD = 'password'
    | DEFAULT_SCHEMA = schema_name

Argumente

application_role_name

Der Name der zu ändernden Anwendungsrolle.

NAME = new_application_role_name

Gibt den neuen Namen der Anwendungsrolle an. Dieser Name darf nicht bereits als Verweis auf einen Prinzipal in der Datenbank verwendet werden.

PASSWORD = 'Kennwort'

Gibt das Kennwort für die Anwendungsrolle an. password muss die Windows-Kennwortrichtlinienanforderungen des Computers erfüllen, auf dem die Instanz von SQL Server ausgeführt wird. Es sollten immer sichere Kennwörter verwendet werden.

DEFAULT_SCHEMA = schema_name

Gibt das erste Schema an, das vom Server beim Auflösen der Namen von Objekten durchsucht wird. schema_name kann ein Schema sein, das in der Datenbank nicht vorhanden ist.

Bemerkungen

Wenn der neue Anwendungsrollenname bereits in der Datenbank vorhanden ist, schlägt die Anweisung fehl. Wenn der Name, das Kennwort oder das Standardschema einer Anwendungsrolle geändert wird, wird die ID, die der Rolle zugeordnet ist, nicht geändert.

Wichtig

Die Kennwortablaufrichtlinie wird nicht auf Anwendungsrollenkennwörter angewendet. Wählen Sie deshalb unbedingt sichere Kennwörter. Anwendungen, die Anwendungsrollen aufrufen, müssen ihre Kennwörter speichern.

Anwendungsrollen sind in der sys.database_principals Katalogansicht sichtbar.

Hinweis

Schemas entsprechen nicht datenbankbenutzern. Verwenden Sie Systemkatalogansichten , um unterschiede zwischen Datenbankbenutzern und Schemas zu identifizieren.

Ab SQL Server 2012 (11.x) verwendet SQL Server und Azure SQL DB einen SHA-512-Hash in Kombination mit einem zufälligen und eindeutigen Salz von 32 Bit. Diese Methode machte es statistisch unzumutbar, dass Angreifer Kennwörter ableiten können.

SQL Server 2025 (17.x) führt einen iterierten Hashalgorithmus ein, RFC2898, auch bekannt als kennwortbasierte Schlüsselableitungsfunktion (PBKDF). Dieser Algorithmus verwendet weiterhin SHA-512, aber hashet das Kennwort mehrmals (100.000 Iterationen), was brute-force-Angriffe erheblich verlangsamt. Diese Änderung verbessert den Kennwortschutz als Reaktion auf sich entwickelnde Sicherheitsbedrohungen und hilft Kunden, NIST SP 800-63b-Richtlinien einzuhalten. Diese Sicherheitsverbesserung verwendet einen stärkeren Hashingalgorithmus, der die Anmeldezeit für SQL-Authentifizierungsanmeldungen leicht erhöhen kann. Die Auswirkung ist in Umgebungen mit Verbindungspooling im Allgemeinen niedriger, kann aber in Szenarien ohne Pooling oder bei der eng überwachten Anmeldelatenz spürbarer sein.

Berechtigungen

Erfordert die ALTER ANY APPLICATION ROLE-Berechtigung in der Datenbank. Zum Ändern des Standardschemas benötigt der Benutzer auch die ALTER-Berechtigung für die Anwendungsrolle. Eine Anwendungsrolle kann ihr eigenes Standardschema ändern, jedoch nicht den Namen oder das Kennwort.

Beispiele

Ein. Ändern des Namens der Anwendungsrolle

Im folgenden Beispiel wird der Name der weekly_receipts-Anwendungsrolle in receipts_ledger geändert.

USE AdventureWorks2022;
CREATE APPLICATION ROLE weekly_receipts
    WITH PASSWORD = '987Gbv8$76sPYY5m23' ,
    DEFAULT_SCHEMA = Sales;
GO
ALTER APPLICATION ROLE weekly_receipts
    WITH NAME = receipts_ledger;
GO

B. Ändern des Kennworts der Anwendungsrolle

Im folgenden Beispiel wird das Kennwort der receipts_ledger-Anwendungsrolle geändert.

ALTER APPLICATION ROLE receipts_ledger
    WITH PASSWORD = '897yUUbv867y$200nk2i';
GO

C. Ändern des Namens, des Kennworts und des Standardschemas

Im folgenden Beispiel werden der Name, das Kennwort und das Standardschema der receipts_ledger-Anwendungsrolle gleichzeitig geändert.

ALTER APPLICATION ROLE receipts_ledger
    WITH NAME = weekly_ledger,
    PASSWORD = '897yUUbv77bsrEE00nk2i',
    DEFAULT_SCHEMA = Production;
GO