共用方式為


應用程式角色

應用程式角色是資料庫主體,可讓應用程式以自己的類似使用者許可權執行。 您可以使用應用程式角色,只允許透過特定應用程式連線的使用者存取特定數據。 不同於資料庫角色,應用程式角色不包含任何成員,且預設為非使用中。 應用程式角色會使用這兩種驗證模式。 應用程式角色是透過使用需要密碼的 sp_setapprole 來啟用。 由於應用程式角色是資料庫層級主體,因此只能透過授與這些 資料庫中來賓的許可權來存取其他資料庫。 因此,任何已停用 guest 的資料庫將對其他資料庫中的應用程式角色無法存取。

在 SQL Server 中,應用程式角色無法存取伺服器層級元數據,因為它們與伺服器層級主體無關。 若要停用這項限制,並允許應用程式角色存取伺服器層級元數據,請設定全域旗標 4616。 如需詳細資訊,請參閱追蹤旗標 (Transact-SQL)DBCC TRACEON (Transact-SQL)。

使用應用程式角色連線

下列步驟組成應用程式角色切換到不同安全性情境的過程:

  1. 使用者執行客戶端應用程式。

  2. 用戶端應用程式會以使用者的身分連接到 SQL Server 的實例。

  3. 然後,應用程式會執行 sp_setapprole 預存程式,且只有應用程式已知密碼。

  4. 如果應用程式角色名稱和密碼有效,則會啟用應用程式角色。

  5. 此時,連線會失去使用者的許可權,並承擔應用程式角色的許可權。

透過應用程式角色取得的許可權在連線期間仍有效。

在舊版 SQL Server 中,用戶啟動應用程式角色之後重新取得其原始安全性內容的唯一方式是中斷連線並重新連線到 SQL Server。 從 SQL Server 2005 開始, sp_setapprole 有一個選項可建立 Cookie。 Cookie 包含啟用應用程式角色之前的內容資訊。 sp_unsetapprole可以利用 Cookie 還原會話的原始上下文。 如需這個新選項和範例的相關信息,請參閱 sp_setapprole (Transact-SQL)

這很重要

SqlClient 不支援 ODBC 加密選項。 當您透過網路傳輸機密資訊時,請使用安全套接字層 (SSL) 或 IPsec 來加密通道。 如果您必須在用戶端應用程式中保存認證,請使用加密 API 函式來加密認證。 在 SQL Server 2005 和更新版本中,參數 密碼 會儲存為單向哈希。

建立應用程式角色。 建立應用程式角色CREATE APPLICATION ROLE (Transact-SQL)
改變應用程式角色。 ALTER APPLICATION ROLE (Transact-SQL)
刪除應用程式角色。 DROP APPLICATION ROLE (Transact-SQL)
使用應用程式角色。 sp_setapprole (Transact-SQL)

另請參閱

保護 SQL Server 的安全