應用程式角色
應用程式角色是資料庫主體,可以讓應用程式以其自有、類似使用者的權限來執行。利用應用程式角色,您可以只允許透過特定應用程式來連線的使用者存取指定的資料。不像資料庫角色,應用程式角色不包含任何成員,且依預設是非使用中狀態。應用程式角色可與這兩種驗證模式搭配運作。應用程式角色是使用 sp_setapprole (需要有密碼) 予以啟動。因為應用程式角色是資料庫層級主體,所以它們只可以透過那些資料庫中授與 guest 的權限來存取其他資料庫。因此,其他資料庫中的應用程式角色將無法存取任何已停用 guest 的資料庫。
在 SQL Server 2005 中,因為應用程式角色未與伺服器層級主體產生關聯,所以應用程式角色無法存取伺服器層級中繼資料。若要停用這個限制,讓應用程式角色存取伺服器層級的中繼資料,請設定全域旗標 4616。如需詳細資訊,請參閱<追蹤旗標 (Transact-SQL)>和<DBCC TRACEON (Transact-SQL)>。
與應用程式角色連接
下列步驟是應用程式角色切換安全性內容的程序:
- 使用者執行用戶端應用程式。
- 用戶端應用程式以使用者身分連接到 SQL Server 的執行個體。
- 接著,應用程式利用只有該應用程式知道的密碼執行 sp_setapprole 預存程序。
- 若應用程式角色的名稱與密碼是有效的,則會啟動該應用程式角色。
- 此時連接會遺失使用者的權限,並假設應用程式角色的權限。
透過應用程式角色取得的權限在連接階段中仍為有效。
在舊版 SQL Server 中,使用者在啟動應用程式角色後要重新取得其安全性內容的唯一方式是中斷並重新連接 SQL Server。在 SQL Server 2005 中,sp_setapprole 具有新的選項,可在啟動應用程式角色前建立包含內容資訊的 Cookie。sp_unsetapprole 可使用此 Cookie 將工作階段還原為其原始內容。如需有關這個新選項的詳細資訊與範例,請參閱<sp_setapprole (Transact-SQL)>。
![]() |
---|
SqlClient 不支援 Microsoft ODBC encrypt 選項。當您透過網路傳送秘密資訊時,請使用安全通訊端層 (SSL) 或 IPSec 來加密該通道。若必須維持客戶端應用程式中的機密性,請使用加密 Cypto API 函式來加密認證。在 SQL Server 2005 中,password 參數是儲存為單向雜湊。 |
請參閱
概念
其他資源
sp_setapprole (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)