按一下以給予評分及指教
MSDN
MSDN Library
SQL Server
SQL Server 2008
Database Engine
技術參考
 sp_change_users_login (Transact-SQL...

  開啟低頻寬檢視
社群內容
本節內容
數據 註解 (0)
其他版本也適用於下列軟體:
SQL Server 2008 線上叢書 (2008 年 5 月)
sp_change_users_login (Transact-SQL)

將現有的資料庫使用者對應至 SQL Server 登入。未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 ALTER USER

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

sp_change_users_login [ @Action = ] 'action' 
    [ , [ @UserNamePattern = ] 'user' ] 
    [ , [ @LoginName = ] 'login' ] 
        [ , [ @Password = ] 'password' ]
[ @Action = ] 'action'

描述此程序所要執行的動作。actionvarchar(10)action 可以具有下列其中一個值。

說明

Auto_Fix

將目前資料庫中 sys.database_principals 系統目錄檢視的使用者項目連結到相同名稱的 SQL Server 登入。如果沒有相同名稱的登入,則會建立一個。請檢查 Auto_Fix 陳述式的結果,以確認連結正確。在安全性敏感的情況下,請避免使用 Auto_Fix

當您使用 Auto_Fix 時,如果登入不存在,則必須指定 userpassword,否則必須指定 user,但會忽略 passwordlogin 必須是 NULL。user 必須是目前資料庫的有效使用者。不能有其他使用者對應至登入。

Report

列出目前資料庫中未連結至任何登入的使用者和對應的安全性識別碼 (SID)。userloginpassword 必須是 NULL 或未指定。

Update_One

將目前資料庫中指定的 user 連結到現有的 SQL Server login。必須指定 userloginpassword 必須是 NULL 或者未指定。

[ @UserNamePattern = ] 'user'

這是目前資料庫中的使用者名稱。usersysname,預設值是 NULL。

[ @LoginName = ] 'login'

這是 SQL Server 登入的名稱。login sysname,預設值是 NULL。

[ @Password = ] 'password'

這是指派給藉由指定 Auto_Fix 所建立之新 SQL Server 登入的密碼。如果符合的登入已存在,則使用者和登入會互相對應且會忽略 password。如果符合的登入不存在,則 sp_change_users_login 會建立新的 SQL Server 登入,並指派 password 當做新登入的密碼。passwordsysname,而且不可以是 NULL。

ms174378.security(zh-tw,SQL.100).gif安全性注意事項:
請使用增強式密碼。如需詳細資訊,請參閱<增強式密碼>。

0 (成功) 或 1 (失敗)

資料行名稱 資料類型 說明

UserName

sysname

資料庫使用者名稱。

UserSID

varbinary(85)

使用者的安全性識別碼。

請使用 sp_change_users_login 將目前資料庫中的資料庫使用者與 SQL Server 登入連結。如果使用者的登入變更,可利用 sp_change_users_login 將使用者連結至新的登入,此舉並不會遺失使用者權限。新 login 不可以是 sa,且 user 不得為 dbo、gues 或 INFORMATION_SCHEMA 使用者。

sp_change_users_login 不能用來將資料庫使用者對應至 Windows 層級的主體、憑證或非對稱金鑰。

sp_change_users_login 不能搭配從 Windows 主體建立的 SQL Server 登入使用,或是搭配 CREATE USER WITHOUT LOGIN 建立的使用者使用。

sp_change_users_login 無法在使用者定義的交易內執行。

需要 db_owner 固定資料庫角色中的成員資格。只有系統管理員 (sysadmin) 固定伺服器角色成員,才能夠指定 Auto_Fix 選項。

A. 顯示目前使用者與登入對應的報表

下列範例會產生目前資料庫中的使用者及其安全性識別碼 (SID) 的報表。

EXEC sp_change_users_login 'Report';

B. 將資料庫使用者對應至新的 SQL Server 登入

下列範例中,資料庫使用者會與新的 SQL Server 登入建立關聯。第一次對應至其他登入的資料庫使用者 MB-Sales,會重新對應至登入 MaryB

--Create the new login.
CREATE LOGIN MaryB WITH PASSWORD = '982734snfdHHkjj3';
GO
--Map database user MB-Sales to login MaryB.
USE AdventureWorks;
GO
EXEC sp_change_users_login 'Update_One', 'MB-Sales', 'MaryB';
GO

C. 自動將使用者對應至登入,視需要建立新的登入

下列範例會顯示如何使用 Auto_Fix 將現有使用者對應至相同名稱的登入,或者如果登入 Mary 不存在的話,就會建立密碼為 B3r12-3x$098f6 的 SQL Server 登入 Mary

USE AdventureWorks;
GO
EXEC sp_change_users_login 'Auto_Fix', 'Mary', NULL, 'B3r12-3x$098f6';
GO
社群內容   什麼是社群內容?
新增內容 RSS  註解
SQL-change-login-user      jodn   |   編輯   |   顯示記錄

使用SP變更登入帳號

標示為 ContentBug
SQL-TSQL-change-login      jodn   |   編輯   |   顯示記錄
使用SP變更目前登入帳號
標示為 ContentBug
Processing
© 2009 Microsoft Corporation. 著作權所有,並保留一切權利。 使用規定  |  商標  |  隱私權聲明
Page view tracker