ALTER LOGIN (Transact-SQL)
更新: 2006 年 12 月 12 日
變更 SQL Server 登入帳戶的屬性。
語法
ALTER LOGIN login_name
{
<status_option>
| WITH <set_option> [ ,... ]
}
<status_option> ::=
ENABLE | DISABLE
<set_option> ::=
PASSWORD = 'password' | hashed_password HASHED
[
OLD_PASSWORD = 'oldpassword'
| <password_option> [ <password_option> ]
]
| DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
| NAME = login_name
| CHECK_POLICY = { ON | OFF }
| CHECK_EXPIRATION = { ON | OFF }
| CREDENTIAL = credential_name
| NO CREDENTIAL
<password_option> ::=
MUST_CHANGE | UNLOCK
引數
- login_name
指定正在變更的 SQL Server 登入名稱。
- ENABLE | DISABLE
啟用或停用這個登入。
- PASSWORD = 'password'
只適用於 SQL Server 登入。指定正在變更的登入密碼。密碼會區分大小寫。
- PASSWORD **=**hashed_password
只適用於 HASHED 關鍵字。指定要建立之登入密碼的雜湊值。
HASHED
只適用於 SQL Server 登入。指定在 PASSWORD 引數之後輸入的密碼已雜湊處理。如果未選取這個選項,則密碼要儲存至資料庫之前會先雜湊處理。附註: 這個引數只適用於由 SQL Server 2000 或更新版本所產生的雜湊。
- OLD_PASSWORD ='oldpassword'
只適用於 SQL Server 登入。將要指派新密碼之登入的目前密碼。密碼會區分大小寫。
- MUST_CHANGE
只適用於 SQL Server 登入。如果包含這個選項,則在第一次使用變更後的登入時,SQL Server 會提示您輸入更新後的密碼。
- DEFAULT_DATABASE **=**database
指定要指派給登入的預設資料庫。
- DEFAULT_LANGUAGE **=**language
指定要指派給登入的預設語言。
- NAME = login_name
正在重新命名之登入的新名稱。如果這是 Windows 登入,則對應到新名稱的 Windows 主體 SID,必須與 SQL Server 中之登入相關聯的 SID 相同。SQL Server 登入的新名稱,不能包含反斜線字元 (\)。
- CHECK_EXPIRATION = { ON | OFF }
只適用於 SQL Server 登入。指定是否應該對這個登入強制執行密碼逾期原則。預設值是 OFF。
- CHECK_POLICY = { ON | OFF }
只適用於 SQL Server 登入。指定應該在這項登入上強制使用執行 SQL Server 之電腦的 Windows 密碼原則。預設值是 ON。
- CREDENTIAL = credential_name
對應到 SQL Server 登入的認證名稱。認證必須已存在於伺服器中。如需詳細資訊,請參閱<認證>。
- NO CREDENTIAL
移除從登入到伺服器認證的任何現有對應。如需詳細資訊,請參閱<認證>。
- UNLOCK
只適用於 SQL Server 登入。指定應該將鎖定的登入解除鎖定。
備註
當 CHECK_POLICY 設定為 ON 時,無法使用 HASHED 引數。
當 CHECK_POLICY 改為 ON 時,會發生下列行為:
- 除非 CHECK_EXPIRATION 明確設為 OFF,否則它也會設為 ON。
- 密碼歷程記錄會使用目前密碼雜湊的值來初始化。
當 CHECK_POLICY 改為 OFF 時,會發生下列行為:
- CHECK_EXPIRATION 也會設為 OFF。
- 會清除密碼歷程記錄。
- 重設 lockout_time 的值。
如果指定 MUST_CHANGE,則 CHECK_EXPIRATION 和 CHECK_POLICY 必須設為 ON。否則,陳述式便會失敗。
如果 CHECK_POLICY 設為 OFF,CHECK_EXPIRATION 就不能設為 ON。具有這些選項組合的 ALTER LOGIN 陳述式會失敗。
重要事項: |
---|
CHECK_EXPIRATION 和 CHECK_POLICY 只會在 和更新的版本中強制執行。如需詳細資訊,請參閱<密碼原則>。 |
重要事項: |
---|
中的已知問題可能會在達到「帳戶鎖定」臨界值之後阻止重設錯誤密碼計數。此舉可能會在後續登入嘗試失敗時導致立即鎖定。您可以手動重設錯誤密碼計數,只要設定 CHECK_POLICY = OFF,後面再接 CHECK_POLICY = ON 即可。如需有關「帳戶鎖定」臨界值的詳細資訊,請參閱 Microsoft 知識庫文件 818078:<您的使用者帳戶可能已被不當鎖定>(英文)。 |
您無法使用含 DISABLE 引數的 ALTER_LOGIN 來拒絕存取 Windows 群組。例如,ALTER_LOGIN [<domain\group>] DISABLE 將傳回下列錯誤訊息:
「訊息 15151,層級 16,狀態 1,行 1」
「無法改變登入 'Domain\Group',因為它不存在或您沒有權限。」
這是預設行為。
權限
需要 ALTER ANY LOGIN 權限。
如果使用 CREDENTIAL 選項,還需要 ALTER ANY CREDENTIAL 權限。
如果要變更的登入是 CONTROL SERVER 權限的被授與者,則在進行下列變更時,也需要 CONTROL SERVER 權限:
- 重設密碼,但不提供舊密碼。
- 啟用 MUST_CHANGE、CHECK_POLICY 或 CHECK_EXPIRATION。
- 變更登入名稱。
- 啟用或停用登入。
- 將登入對應到不同的認證。
主體可以為它自己的登入變更密碼、預設語言和預設資料庫。
範例
A. 啟用已停用的登入
下列範例會啟用登入 Mary5
。
ALTER LOGIN Mary5 ENABLE;
B. 變更登入的密碼
下列範例會變更 Mary5
的密碼。
ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';
C. 變更登入的名稱
下列範例會將登入 Mary5
的名稱改為 Joe2
。
ALTER LOGIN Mary5 WITH NAME = Joe2;
D. 將登入對應到認證
下列範例會將登入 Joe2
對應到認證 Custodian04
。
ALTER LOGIN Joe2 WITH CREDENTIAL = Custodian04;
請參閱
參考
CREATE LOGIN (Transact-SQL)
DROP LOGIN (Transact-SQL)
CREATE CREDENTIAL (Transact-SQL)
EVENTDATA (Transact-SQL)
其他資源
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 12 月 12 日 |
|