Freigeben über


sp_addapprole (Transact-SQL)

Fügt der aktuellen Datenbank eine Anwendungsrolle hinzu.

Wichtiger HinweisWichtig

Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Verwenden Sie stattdessen CREATE APPLICATION ROLE.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_addapprole [ @rolename = ] 'role' , [ @password = ] 'password'

Argumente

  • [ @rolename = ] 'role'
    Der Name der neuen Anwendungsrolle. role ist vom Datentyp sysname und hat keinen Standard. role muss ein gültiger Bezeichner sein und darf nicht bereits in der aktuellen Datenbank vorhanden sein.

    Namen von Anwendungsrollen können zwischen 1 und 128 Zeichen (Buchstaben, Sonderzeichen und Ziffern) enthalten. Rollennamen dürfen weder einen umgekehrten Schrägstrich (\) noch NULL oder eine leere Zeichenfolge ('') enthalten.

  • [ @password = ] 'password'
    Das zum Aktivieren der Anwendungsrolle erforderliche Kennwort. password ist vom Datentyp sysname und hat keinen Standard. password darf nicht NULL sein.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

In früheren Versionen von SQL Server unterscheiden sich Benutzer (und Rollen) nicht vollständig von Schemas. Seit SQL Server 2005 unterscheiden sich Schemas und Rollen vollständig. Diese neue Architektur spiegelt sich im Verhalten von CREATE APPLICATION ROLE wider. Diese Anweisung setzt sp_addapprole außer Kraft. Weitere Informationen finden Sie unter Trennung von Benutzer und Schema.

Damit die Kompatibilität mit früheren Versionen von SQL Server gewährleistet ist, führt sp_addapprole Folgendes aus:

  • Wenn nicht bereits ein Schema mit dem gleichen Namen wie die Anwendungsrolle vorhanden ist, wird ein solches Schema erstellt. Das neue Schema ist im Besitz der Anwendungsrolle und wird als Standardschema der Anwendungsrolle verwendet.

  • Wenn bereits ein Schema mit dem gleichen Namen wie die Anwendungsrolle vorhanden ist, erzeugt die Prozedur einen Fehler.

  • Die Kennwortkomplexität wird von sp_addapprole nicht überprüft. Von CREATE APPLICATION ROLE hingegen wird die Kennwortkomplexität überprüft.

Der password-Parameter wird als unidirektionaler Hash gespeichert.

Die gespeicherte Prozedur sp_addapprole kann nicht innerhalb einer benutzerdefinierten Transaktion ausgeführt werden.

SicherheitshinweisSicherheitshinweis

Die encrypt-Option in Microsoft ODBC wird von SqlClient nicht unterstützt. Sofern möglich, sollten Benutzer zur Eingabe der Anmeldeinformationen für Anwendungsrollen zur Laufzeit aufgefordert werden. Die Anmeldeinformationen sollten nicht in einer Datei gespeichert werden. Wenn Anmeldeinformationen permanent gespeichert werden müssen, sollten Sie sie mithilfe der CryptoAPI-Funktionen verschlüsseln.

Berechtigungen

Erfordert die ALTER ANY APPLICATION ROLE-Berechtigung für die Datenbank. Ist nicht bereits ein Schema mit dem gleichen Namen und Besitzer wie die neue Rolle vorhanden, ist auch die CREATE SCHEMA-Berechtigung für die Datenbank erforderlich.

Beispiele

Im folgenden Beispiel wird der aktuellen Datenbank die neue Anwendungsrolle SalesApp mit dem Kennwort x97898jLJfcooFUYLKm387gf3 hinzugefügt.

EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3' ;
GO