Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Anwendungsrolle ist ein Datenbankprinzipal, mit dem eine Anwendung mit eigenen, benutzerähnlichen Berechtigungen ausgeführt werden kann. Sie können Anwendungsrollen verwenden, um den Zugriff auf bestimmte Daten nur für benutzer zu ermöglichen, die über eine bestimmte Anwendung eine Verbindung herstellen. Im Gegensatz zu Datenbankrollen enthalten Anwendungsrollen keine Member und sind standardmäßig inaktiv. Anwendungsrollen funktionieren mit beiden Authentifizierungsmodi. Anwendungsrollen werden mithilfe von sp_setapprole aktiviert, für die ein Kennwort erforderlich ist. Da Anwendungsrollen ein Prinzipal auf Datenbankebene sind, können sie nur über Berechtigungen, die in diesen Datenbanken für Gäste gewährt werden, auf andere Datenbanken zugreifen. Daher wird jede Datenbank, in der Gast deaktiviert wurde, für Anwendungsrollen in anderen Datenbanken nicht zugänglich sein.
In SQL Server können Anwendungsrollen nicht auf Metadaten auf Serverebene zugreifen, da sie keinem Prinzipal auf Serverebene zugeordnet sind. Um diese Einschränkung zu deaktivieren und anwendungsrollen den Zugriff auf Metadaten auf Serverebene zu ermöglichen, legen Sie das globale Flag 4616 fest. Weitere Informationen finden Sie unter Trace Flags (Transact-SQL) und DBCC TRACEON (Transact-SQL).
Verbindung mit einer Anwendungsrolle herstellen.
Die folgenden Schritte bilden den Prozess, mit dem eine Anwendungsrolle Sicherheitskontexte wechselt:
Ein Benutzer führt eine Clientanwendung aus.
Die Clientanwendung verbindet sich mit einer Instanz von SQL Server als Benutzer.
Die Anwendung führt dann die sp_setapprole gespeicherten Prozedur mit einem Kennwort aus, das nur der Anwendung bekannt ist.
Wenn der Anwendungsrollenname und das Kennwort gültig sind, ist die Anwendungsrolle aktiviert.
An diesem Punkt verliert die Verbindung die Berechtigungen des Benutzers und übernimmt die Berechtigungen der Anwendungsrolle.
Die über die Anwendungsrolle erworbenen Berechtigungen bleiben für die Dauer der Verbindung wirksam.
In früheren Versionen von SQL Server besteht die einzige Möglichkeit für einen Benutzer, den ursprünglichen Sicherheitskontext nach dem Starten einer Anwendungsrolle erneut zu erhalten, darin, die Verbindung mit SQL Server zu trennen und erneut herzustellen. Ab SQL Server 2005 verfügt sp_setapprole über eine Option, mit der ein Cookie erstellt wird. Das Cookie enthält Kontextinformationen, bevor die Anwendungsrolle aktiviert wird. Das Cookie kann von sp_unsetapprole verwendet werden, um die Sitzung auf ihren ursprünglichen Kontext zurückzusetzen. Informationen zu dieser neuen Option und einem Beispiel finden Sie unter sp_setapprole (Transact-SQL).
Von Bedeutung
Die ODBC-Verschlüsselungsoption wird von SqlClient nicht unterstützt. Wenn Sie vertrauliche Informationen über ein Netzwerk übertragen, verwenden Sie Secure Sockets Layer (SSL) oder IPsec, um den Kanal zu verschlüsseln. Wenn Sie Anmeldeinformationen in der Clientanwendung beibehalten müssen, verschlüsseln Sie die Anmeldeinformationen mithilfe der Krypto-API-Funktionen. In SQL Server 2005 und höheren Versionen wird das Parameterkennwort als unidirektionales Hash gespeichert.
Verwandte Aufgaben
| Erstellen Sie eine Anwendungsrolle. | Erstellen einer Anwendungsrolle und CREATE APPLICATION ROLE (Transact-SQL) |
| Ändern einer Anwendungsrolle. | ALTER APPLICATION ROLE (Transact-SQL) |
| Löschen sie eine Anwendungsrolle. | DROP APPLICATION ROLE (Transact-SQL) |
| Verwenden einer Anwendungsrolle. | sp_setapprole (Transact-SQL) |