Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure 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