ALTER APPLICATION ROLE (Transact-SQL)

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 ='password'
Gibt das Kennwort für die Anwendungsrolle an. password muss den Anforderungen der Windows-Kennwortrichtlinien des Computers entsprechen, 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

Falls der neue Anwendungsrollenname bereits in der Datenbank vorhanden ist, wird für die Anweisung ein Fehler gemeldet. Wenn der Name, das Kennwort oder das Standardschema einer Anwendungsrolle geändert wird, wird die der Rolle zugeordnete ID nicht geändert.

Wichtig

Die Richtlinie für das Ablaufen von Kennwörtern wird nicht auf Kennwörter von Anwendungsrollen angewendet. Wählen Sie deshalb unbedingt sichere Kennwörter. Anwendungen, die Anwendungsrollen aufrufen, müssen ihre Kennwörter speichern.

Anwendungsrollen werden in der sys.database_principals-Katalogsicht angezeigt.

Achtung

Das Verhalten der Schemas in SQL Server 2005 (9.x) unterscheidet sich von dem in früheren Versionen von SQL Server. Code, in dem vorausgesetzt wird, dass Schemas Datenbankbenutzern entsprechen, gibt möglicherweise nicht die richtigen Ergebnisse zurück. Alte Katalogsichten, einschließlich „sysobjects“, sollten nicht in einer Datenbank verwendet werden, in der bereits irgendeine der folgenden DDL-Anweisungen verwendet wurde: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. In einer Datenbank, in der jemals eine dieser Anweisungen verwendet wurde, müssen Sie die neuen Katalogsichten verwenden. In den neuen Katalogsichten wird die Trennung zwischen Prinzipalen und Schemas berücksichtigt, die in SQL Server 2005 (9.x) eingeführt wurde. Weitere Informationen zu Katalogsichten finden Sie unter Katalogsichten (Transact-SQL).

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

A. Ä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  

Weitere Informationen

Anwendungsrollen
CREATE APPLICATION ROLE (Transact-SQL)
DROP APPLICATION ROLE (Transact-SQL)
EVENTDATA (Transact-SQL)