sp_addapprole (Transact-SQL)

Gilt für:SQL Server

Fügt der aktuellen Datenbank eine Anwendungsrolle hinzu.

Wichtig

Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Verwenden Sie stattdessen CREATE APPLICATION ROLE .

Transact-SQL-Syntaxkonventionen

Syntax

sp_addapprole
    [ @rolename = ] N'rolename'
    , [ @password = ] N'password'
[ ; ]

Argumente

[ @rolename = ] N'rolename'

Der Name der neuen Anwendungsrolle. @rolename ist "sysname" ohne Standard. @rolename muss ein gültiger Bezeichner sein und kann 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 = ] N'password'

Das zum Aktivieren der Anwendungsrolle erforderliche Kennwort. @password ist "sysname" ohne Standard. @password darf nicht NULL sein.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

In früheren Versionen von SQL Server unterscheiden sich Benutzer (und Rollen) nicht vollständig von Schemas. Ab SQL Server 2005 (9.x) unterscheiden sich Schemas vollständig von Rollen. Diese Architektur spiegelt sich im Verhalten von CREATE APPLICATION ROLE. Diese Anweisung ersetzt sp_addapprole.

Führen Sie die folgenden Prüfungen aus, sp_addapprole um die Abwärtskompatibilität mit früheren Versionen von SQL Server zu Standard:

  • Wenn ein Schema mit demselben Namen wie die Anwendungsrolle noch nicht vorhanden ist, wird das Schema erstellt. Das neue Schema gehört der Anwendungsrolle und ist das Standardschema der Anwendungsrolle.

  • Wenn bereits ein Schema mit demselben Namen wie die Anwendungsrolle vorhanden ist, schlägt die Prozedur fehl.

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

Der Parameter @password wird als unidirektionales Hash gespeichert.

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

Wichtig

Die Microsoft ODBC-Option encrypt 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 persistent gespeichert werden müssen, sollten Sie sie mithilfe der CryptoAPI-Funktionen verschlüsseln.

Berechtigungen

Erfordert die ALTER ANY APPLICATION ROLE-Berechtigung in der Datenbank. Wenn ein Schema mit demselben Namen und Besitzer wie die neue Rolle noch nicht vorhanden ist, 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