select * from sys.sql_logins---拷貝出password(雜湊密碼)
CREATE LOGIN test1
WITH PASSWORD = 0x0100DBF387CCF45DAE93115E80D18962C1DB0CC7DCB8A027F93F hashed, ---可以與拷貝出來使用者賬戶的密碼一致
sid= 0xB08B6E953A82674F84EA34800A5E76D6,
CHECK_POLICY = OFF; -----不強制密碼原則
----------------------------------------------------------------------------
可用於鏡像使用者不一致情況處理:刪除鏡像使用者,建立新使用者
ALTER LOGIN login_name { <status_option> | WITH <set_option> [ ,... ] | <cryptographic_credential_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<cryptographic_credentials_option> ::= ADD CREDENTIAL credential_name | DROP CREDENTIAL credential_name參數
-
login_name
-
指定正在更改的 SQL Server 登入的名稱。域登入名稱必須用方括弧括起來,其格式為 [domain\user]。
-
ENABLE | DISABLE
-
啟用或禁用此登入名稱。
-
PASSWORD
='password
'
-
僅適用於 SQL Server 登入名。指定正在更改的登入的密碼。密碼是區分大小寫。
-
PASSWORD
=hashed_password
-
僅適用於 HASHED 關鍵字。指定要建立的登入名稱的密碼的雜湊值。
-
HASHED
-
僅適用於 SQL Server 登入名。指定在 PASSWORD 參數後輸入的密碼已經過雜湊運算。如果未選擇此選項,則在將密碼儲存到資料庫之前,對其進行雜湊運算。此選項只能用於在兩台伺服器之間同步登入名稱。切勿使用 HASHED 選項定期更改密碼。
| 注意 |
此參數只能用於 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 登入名。指定應解鎖被鎖定的登入名稱。
-
ADD CREDENTIAL
-
將可擴充的密鑰管理 (EKM) 提供者憑據添加到登入名稱。有關詳細資料,請參閱瞭解可擴充的密鑰管理 (EKM)。
-
DROP CREDENTIAL
-
刪除登入名稱的可擴充密鑰管理 (EKM) 提供者憑據。有關詳細資料,請參閱瞭解可擴充的密鑰管理 (EKM)。
注釋
如果 CHECK_POLICY 設定為 ON,則無法使用 HASHED 參數。
如果 CHECK_POLICY 更改為 ON,則將出現以下行為:
如果 CHECK_POLICY 更改為 OFF,則將出現以下行為:
如果指定 MUST_CHANGE,則 CHECK_EXPIRATION 和 CHECK_POLICY 必須設定為 ON。否則,該語句將失敗。
如果 CHECK_POLICY 設定為 OFF,則 CHECK_EXPIRATION 不能設定為 ON。包含此選項組合的 ALTER LOGIN 語句將失敗。
| 重要提示 |
只有在 Windows Server 2003 及更高版本上才會強制執行 CHECK_EXPIRATION 和 CHECK_POLICY。有關詳細資料,請參閱密碼原則。 |
| 重要提示 |
Windows Server 2003 中的一個已知問題可能會阻止錯誤密碼計數在達到帳戶鎖定閾值後重設。這可能會導致當後續登入嘗試失敗後立即鎖定。可以通過暫時設定 CHECK_POLICY = OFF,然後設定 CHECK_POLICY = ON 來手動重設錯誤的密碼計數。有關帳戶鎖定閾值的詳細資料,請參閱 Microsoft 知識庫文章 818078:Your User Account May Be Prematurely Locked Out(您的使用者帳戶可能被提前鎖定)。 |
不能使用帶 DISABLE 參數的 ALTER_LOGIN 來拒絕對 Windows 組的訪問。例如,ALTER_LOGIN [domain\group] DISABLE 將返回以下錯誤訊息:
“訊息 15151,層級 16,狀態 1,第 1 行”
“無法對登入名稱‘Domain\Group' 執行更改,因為它不存在,或者您沒有所需的許可權。”
這是預設設定。
許可權
需要 ALTER ANY LOGIN 許可權。
如果使用 CREDENTIAL 選項,則還需要 ALTER ANY CREDENTIAL 許可權。
如果正在更改的登入名稱是 sysadmin 固定伺服器角色的成員或 CONTROL SERVER 許可權的被授權者,則進行以下更改時還需要 CONTROL SERVER 許可權:
主體可更改用於自身登入的密碼、預設語言以及預設資料庫。
樣本
A. 啟用已禁用的登入名稱
以下樣本將啟用 Mary5 登入名稱。
ALTER LOGIN Mary5 ENABLE;
B. 更改登入密碼
以下樣本將登入名稱 Mary5 的密碼更改為強密碼。
ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';
C. 更改登入名稱稱
以下樣本將 Mary5 登入名稱稱更改為 John2。
ALTER LOGIN Mary5 WITH NAME = John2;
D. 將登入名稱映射到憑據
以下樣本將登入名稱 John2 映射到憑據 Custodian04。
ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;
E. 將登入名稱映射到可擴充密鑰管理認證
以下樣本將登入名稱 Mary5 映射到 EKM 憑據 EKMProvider1。
ALTER LOGIN Mary5ADD CREDENTIAL EKMProvider1;GO
F. 解除鎖定登入名稱
若要解除鎖定 SQL Server 登入名,請執行以下語句,並將 **** 替換為所需帳戶密碼。
ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;GO
若要在不更改密碼的情況下解除鎖定登入名稱,請關閉檢查策略,然後再開啟此檢查策略。
ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;GO
G. 使用 HASHED 更改登入名稱的密碼
以下樣本將 TestUser 登入名稱的密碼更改為已經過雜湊運算的值。
ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;GO