共用方式為


SETUSER (Transact-SQL)

只允許系統管理員 (sysadmin) 固定伺服器角色或 db_owner 固定資料庫角色的成員,能夠模擬另一位使用者。

ms186297.note(zh-tw,SQL.90).gif重要事項:
Microsoft SQL Server 2005 包括 SETUSER 的目的,是為了與舊版相容。未來的 SQL Server 版本可能不支援 SETUSER。我們建議您改用 EXECUTE AS

主題連結圖示Transact-SQL 語法慣例

語法

SETUSER [ 'username' [ WITH NORESET ] ] 

引數

'username'

這是在模擬的目前資料庫中之 SQL Server 或 Microsoft Windows 使用者名稱。當未指定 username 時,會重設摸擬使用者的系統管理員或資料庫擁有者的原始識別。

WITH NORESET

指定後續的 SETUSER 陳述式 (不含指定的 username) 不應將使用者識別重設為系統管理員或資料庫擁有者。

備註

系統管理員 (sysadmin) 固定伺服器角色或 db_owner 固定資料庫角色的成員,可以利用 SETUSER 來採用另一位使用者的識別,以測試其他使用者的權限。

請只搭配 SQL Server 使用者使用 SETUSER。不支援 Windows 使用者使用 SETUSER。當利用 SETUSER 來假設使用另一位使用者的識別時,被模擬的使用者會擁有進行模擬的使用者所建立的任何物件。例如,如果資料庫擁有者假設使用 Margaret 使用者的識別,並建立稱為 orders 的資料表,orders 資料表的擁有者便是 Margaret,而不是系統管理員。

SETUSER 會維持有效,直到發出另一個 SETUSER 陳述式,或直到利用 USE 陳述式來變更目前資料庫為止。

ms186297.note(zh-tw,SQL.90).gif附註:
如果使用 SETUSER WITH NORESET,資料庫擁有者或系統管理員必須登出,再重新登入,以便重新建立他們自己的權利。

權限

需要系統管理員 (sysadmin) 固定伺服器角色或 db_owner 固定資料庫角色中的成員資格。

範例

下列範例會顯示資料庫擁有者可以如何採用另一位使用者的識別。mary 使用者建立了稱為 computer_types 的資料表。藉由使用 SETUSER,資料庫擁有者模擬 mary 來授與 joe 使用者存取 computer_types 資料表的權利,然後再重設他們自己的識別。

SETUSER 'mary'
GO
GRANT SELECT ON computer_types TO joe
GO
SETUSER

請參閱

參考

DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
USE (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助