sp_addapprole (Transact-SQL)
Fügt der aktuellen Datenbank eine Anwendungsrolle hinzu.
Wichtig: |
---|
Dieses Feature wird in einer zukünftigen Version von Microsoft SQL Server entfernt. Verwenden Sie dieses Feature beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Verwenden Sie stattdessen CREATE APPLICATION ROLE. |
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. In SQL Server 2005 hingegen 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 nicht von sp_addapprole, sondern von CREATE APPLICATION ROLE ü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 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
Siehe auch
Verweis
CREATE APPLICATION ROLE (Transact-SQL)
Andere Ressourcen
Trennung von Benutzer und Schema