sp_addapprole (Transact-SQL)
Fügt der aktuellen Datenbank eine Anwendungsrolle hinzu.
Wichtig
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.
Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version). |
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 Standardwert. role muss ein gültiger Bezeichner 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 für die Aktivierung der Anwendungsrolle erforderliche Kennwort. password ist vom Datentyp sysname und hat keinen Standardwert. 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.
Damit die Abwärtskompatibilitä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.
Sicherheitshinweis |
---|
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 persistent 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