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 keinen umgekehrten Schrägstrich (\
) oder NULL
eine leere Zeichenfolge ('' enthalten).
[ @password = ] N'password'
Das zum Aktivieren der Anwendungsrolle erforderliche Kennwort. @password ist "sysname" ohne Standard. @password kann nicht seinNULL
.
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 aufrechtzuerhalten:
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 vonCREATE 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