ALTER LOGIN (Transact-SQL)
變更 SQL Server 登入帳戶的屬性。
注意
Microsoft Entra 識別碼 先前稱為 Azure Active Directory(Azure AD)。
選取產品
在下列數據列中,選取您感興趣的產品名稱,而且只會顯示該產品的資訊。
* SQL Server *
SQL Server
SQL Server 的語法
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 |禁用
啟用或停用此登入。 停用登入不會影響已連線的登入行為。 (使用 KILL
語句終止現有的連接。停用的登入會保留其許可權,而且仍然可以模擬。
PASSWORD = 'password'
僅適用於 SQL Server 登入。 指定正在變更之登入的密碼。 密碼會區分大小寫。
PASSWORD = hashed_password
僅適用於HASHED關鍵詞。 指定所建立之登入之密碼的哈希值。
重要
當登入(或自主資料庫用戶)連線並經過驗證時,聯機會快取登入的相關身分識別資訊。 針對 Windows 驗證登入,這包括 Windows 群組中成員資格的相關信息。 只要維護連線,登入的身分識別就會保持驗證狀態。 若要強制變更身分識別,例如密碼重設或 Windows 群組成員資格中的變更,登入必須註銷驗證授權單位 (Windows 或 SQL Server),然後重新登入。
系統管理員 固定伺服器角色或任何具有 ALTER ANY CONNECTION
許可權的登入成員,可以使用 KILL
命令結束連線,並強制登入重新連線。 SQL Server Management Studio 可以在開啟 [物件總管] 和 [查詢編輯器] 視窗的多個連線機時重複使用連接資訊。 關閉所有連線以強制重新連線。
散列
僅適用於 SQL Server 登入。 指定在PASSWORD自變數已哈希之後輸入的密碼。 如果未選取此選項,則會先哈希密碼,再儲存在資料庫中。 此選項只應該用於兩部伺服器之間的登入同步處理。 請勿使用HASHED選項來定期變更密碼。
OLD_PASSWORD = 'old_password'
僅適用於 SQL Server 登入。 將指派新密碼之登入的目前密碼。 密碼會區分大小寫。
MUST_CHANGE
僅適用於 SQL Server 登入。 如果包含此選項,SQL Server 會在第一次使用更改登入時提示更新的密碼。
DEFAULT_DATABASE = 資料庫
指定要指派給登入的預設資料庫。
DEFAULT_LANGUAGE = 語言
指定要指派給登入的默認語言。 所有 SQL Database 登入的預設語言都是英文,無法變更。 Linux 上 SQL Server 上 sa
登入的默認語言是英文,但可以變更。
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 登入的認證名稱。 認證必須已存在於伺服器中。 如需詳細資訊,請參閱 認證。 認證無法對應至sa登入。
NO CREDENTIAL
拿掉登入與伺服器認證的任何現有對應。 如需詳細資訊,請參閱 認證。
開鎖
僅適用於 SQL Server 登入。 指定鎖定的登入應該解除鎖定。
ADD CREDENTIAL
將可延伸金鑰管理 (EKM) 提供者認證新增至登入。 如需詳細資訊,請參閱 可延伸金鑰管理 (EKM)。
DROP CREDENTIAL
從登入中移除可延伸密鑰管理 (EKM) 提供者認證。 如需詳細資訊,請參閱 [可延伸密鑰管理 (EKM)] (../../relational-databases/security/encryption/extensible-key-management-ekm.md)。
言論
當CHECK_POLICY設定為 ON 時,無法使用 HASHED 自變數。
當CHECK_POLICY變更為 ON 時,會發生下列行為:
- 密碼歷程記錄會使用目前密碼哈希的值初始化。
當CHECK_POLICY變更為 OFF 時,會發生下列行為:
- CHECK_EXPIRATION也會設定為 OFF。
- 已清除密碼歷程記錄。
- 重設 lockout_time 的值。
如果指定MUST_CHANGE,CHECK_EXPIRATION和CHECK_POLICY必須設定為 ON。 否則,語句會失敗。
如果CHECK_POLICY設定為 OFF,CHECK_EXPIRATION無法設定為 ON。 具有這個選項組合的 ALTER LOGIN 語句會失敗。
您無法搭配 DISABLE 自變數使用 ALTER LOGIN 來拒絕存取 Windows 群組。 例如,ALTER LOGIN [<domain>\<group>] DISABLE
傳回下列錯誤訊息:
"Msg 15151, Level 16, State 1, Line 1
Cannot alter the login '*Domain\Group*', because it doesn't exist or you don't have permission.
這是根據設計。
在 SQL Database 中,驗證連線和伺服器層級防火牆規則所需的登入數據會在每個資料庫中暫時快取。 此快取會定期重新整理。 若要強制重新整理驗證快取,並確定資料庫具有最新版本的登入數據表,請執行 DBCC FLUSHAUTHCACHE。
權限
需要 ALTER ANY LOGIN 許可權。
如果使用 CREDENTIAL 選項,也需要 ALTER ANY CREDENTIAL 許可權。
如果要變更的登入是 系統管理員 固定伺服器角色或 CONTROL SERVER 許可權被授出席者的成員,在進行下列變更時也需要 CONTROL SERVER 許可權:
- 重設密碼而不提供舊密碼。
- 啟用MUST_CHANGE、CHECK_POLICY或CHECK_EXPIRATION。
- 變更登入名稱。
- 啟用或停用登入。
- 將登入對應至不同的認證。
主體可以變更其本身登入的密碼、默認語言和預設資料庫。
例子
一個。 啟用停用的登入
下列範例會啟用登入 Mary5
。
ALTER LOGIN Mary5 ENABLE;
B. 變更登入的密碼
下列範例會將登入 Mary5
的密碼變更為強密碼。
ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';
C. 以登入身分登入時變更登入的密碼
如果您嘗試變更您目前登入的登入密碼,而且您沒有 ALTER ANY LOGIN
許可權,您必須指定 [OLD_PASSWORD
] 選項。
ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>' OLD_PASSWORD = '<oldWeakPasswordHere>';
D. 變更登入的名稱
下列範例會將登入 Mary5
的名稱變更為 John2
。
ALTER LOGIN Mary5 WITH NAME = John2;
E. 將登入對應至認證
下列範例會將登入 John2
對應至認證 Custodian04
。
ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;
F. 將登入對應至可延伸金鑰管理認證
下列範例會將登入 Mary5
對應至 EKM 認證 EKMProvider1
。
ALTER LOGIN Mary5 ADD 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
相關內容
* SQL Database *
SQL Database
Azure SQL Database 的語法
ALTER LOGIN login_name
{
<status_option>
| WITH <set_option> [ , .. .n ]
}
[;]
<status_option> ::=
ENABLE | DISABLE
<set_option> ::=
PASSWORD = 'password'
[
OLD_PASSWORD = 'oldpassword'
]
| NAME = login_name
參數
login_name
指定正在變更的 SQL Server 登入名稱。 網域登入必須以 [domain\user] 格式括住方括弧。
ENABLE |禁用
啟用或停用此登入。 停用登入不會影響已連線的登入行為。 (使用 KILL
語句終止現有的連接。停用的登入會保留其許可權,而且仍然可以模擬。
PASSWORD = 'password'
僅適用於 SQL Server 登入。 指定正在變更之登入的密碼。 密碼會區分大小寫。
持續使用中的 SQL Database 連線至少每 10 小時需要重新授權(由 Database Engine 執行)。 Database Engine 會嘗試使用原始提交的密碼重新授權,而且不需要用戶輸入。 基於效能考慮,當 SQL Database 中重設密碼時,即使連線因為連線共用而重設,連線也不會重新驗證。 這與內部部署 SQL Server 的行為不同。 如果密碼自一開始授權后已變更,則必須終止連線,並使用新密碼建立的新連線。 具有KILL DATABASE CONNECTION 許可權的使用者可以使用KILL命令,明確地終止與SQL Database的連線。 如需詳細資訊,請參閱 KILL。
重要
當登入(或自主資料庫用戶)連線並經過驗證時,聯機會快取登入的相關身分識別資訊。 針對 Windows 驗證登入,這包括 Windows 群組中成員資格的相關信息。 只要維護連線,登入的身分識別就會保持驗證狀態。 若要強制變更身分識別,例如密碼重設或 Windows 群組成員資格中的變更,登入必須註銷驗證授權單位 (Windows 或 SQL Server),然後重新登入。
OLD_PASSWORD = 'old_password'
僅適用於 SQL Server 登入。 將指派新密碼之登入的目前密碼。 密碼會區分大小寫。
NAME = login_name
要重新命名之登入的新名稱。 如果這是 Windows 登入,對應至新名稱之 Windows 主體的 SID 必須符合與 SQL Server 中登入相關聯的 SID。 SQL Server 登入的新名稱不能包含反斜杠字元 (\)。
言論
在 SQL Database 中,驗證連線和伺服器層級防火牆規則所需的登入數據會在每個資料庫中暫時快取。 此快取會定期重新整理。 若要強制重新整理驗證快取,並確定資料庫具有最新版本的登入數據表,請執行 DBCC FLUSHAUTHCACHE。
權限
需要 ALTER ANY LOGIN 許可權。
如果要變更的登入是 系統管理員 固定伺服器角色或 CONTROL SERVER 許可權被授出席者的成員,在進行下列變更時也需要 CONTROL SERVER 許可權:
- 重設密碼而不提供舊密碼。
- 變更登入名稱。
- 啟用或停用登入。
- 將登入對應至不同的認證。
主體可以變更自己的登入密碼。
例子
這些範例也包含使用其他 SQL 產品的範例。 查看支援哪些先前的自變數。
一個。 啟用停用的登入
下列範例會啟用登入 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
。
適用於:SQL Server 2008 (10.0.x) 和更新版本。
ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO
F. 使用HASHED變更登入的密碼
下列範例會將登入 TestUser
的密碼變更為已哈希值。
適用於:SQL Server 2008 (10.0.x) 和更新版本。
ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO
相關內容
* SQL 受控實例 *
Azure SQL 受控實例
SQL Server 和 Azure SQL 受控實例的語法
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
-- Syntax for Azure SQL Managed Instance using Microsoft Entra logins
ALTER LOGIN login_name
{
<status_option>
| WITH <set_option> [ , .. .n ]
}
[;]
<status_option> ::=
ENABLE | DISABLE
<set_option> ::=
DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
參數
適用於 SQL 和 Microsoft Entra 登入的自變數
login_name
指定正在變更的 SQL Server 登入名稱。 Microsoft Entra 登入必須指定為 user@domain。 例如,john.smith@contoso.com或 做為 Microsoft Entra 群組或應用程式名稱。 對於Microsoft Entra 登入,login_name 必須對應至在 master
資料庫中建立的現有 Microsoft Entra 登入。
ENABLE |禁用
啟用或停用此登入。 停用登入不會影響已連線的登入行為。 (使用 KILL
語句終止現有的連接。停用的登入會保留其許可權,而且仍然可以模擬。
DEFAULT_DATABASE = 資料庫
指定要指派給登入的預設資料庫。
DEFAULT_LANGUAGE = 語言
指定要指派給登入的默認語言。 所有 SQL Database 登入的預設語言都是英文,無法變更。 Linux 上 SQL Server 上 sa
登入的默認語言是英文,但可以變更。
僅適用於 SQL 登入的自變數
PASSWORD = 'password'
僅適用於 SQL Server 登入。 指定正在變更之登入的密碼。 密碼會區分大小寫。 搭配外部登入使用時,密碼也不會套用,例如Microsoft Entra 登入。
持續使用中的 SQL Database 連線至少每 10 小時需要重新授權(由 Database Engine 執行)。 Database Engine 會嘗試使用原始提交的密碼重新授權,而且不需要用戶輸入。 基於效能考慮,當 SQL Database 中重設密碼時,即使連線因為連線共用而重設,連線也不會重新驗證。 這與內部部署 SQL Server 的行為不同。 如果密碼自一開始授權后已變更,則必須終止連線,並使用新密碼建立的新連線。 具有KILL DATABASE CONNECTION 許可權的使用者可以使用KILL命令,明確地終止與SQL Database的連線。 如需詳細資訊,請參閱 KILL。
PASSWORD = hashed_password
僅適用於HASHED關鍵詞。 指定所建立之登入之密碼的哈希值。
散列
僅適用於 SQL Server 登入。 指定在PASSWORD自變數已哈希之後輸入的密碼。 如果未選取此選項,則會先哈希密碼,再儲存在資料庫中。 此選項只應該用於兩部伺服器之間的登入同步處理。 請勿使用HASHED選項來定期變更密碼。
OLD_PASSWORD = 'old_password'
僅適用於 SQL Server 登入。 將指派新密碼之登入的目前密碼。 密碼會區分大小寫。
MUST_CHANGE
僅適用於 SQL Server 登入。 如果包含此選項,SQL Server 會在第一次使用更改登入時提示更新的密碼。
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 登入的認證名稱。 認證必須已存在於伺服器中。 如需詳細資訊,請參閱 認證。 認證無法對應至sa登入。
NO CREDENTIAL
拿掉登入與伺服器認證的任何現有對應。 如需詳細資訊,請參閱 認證。
開鎖
僅適用於 SQL Server 登入。 指定鎖定的登入應該解除鎖定。
ADD CREDENTIAL
將可延伸金鑰管理 (EKM) 提供者認證新增至登入。 如需詳細資訊,請參閱 可延伸金鑰管理 (EKM)。
DROP CREDENTIAL
從登入中移除可延伸密鑰管理 (EKM) 提供者認證。 如需詳細資訊,請參閱 可延伸金鑰管理 (EKM)。
言論
當CHECK_POLICY設定為 ON 時,無法使用 HASHED 自變數。
當CHECK_POLICY變更為 ON 時,會發生下列行為:
- 密碼歷程記錄會使用目前密碼哈希的值初始化。
當CHECK_POLICY變更為 OFF 時,會發生下列行為:
- CHECK_EXPIRATION也會設定為 OFF。
- 已清除密碼歷程記錄。
- 重設 lockout_time 的值。
如果指定MUST_CHANGE,CHECK_EXPIRATION和CHECK_POLICY必須設定為 ON。 否則,語句會失敗。
如果CHECK_POLICY設定為 OFF,CHECK_EXPIRATION無法設定為 ON。 具有這個選項組合的 ALTER LOGIN 語句會失敗。
您無法搭配 DISABLE 自變數使用ALTER_LOGIN來拒絕存取 Windows 群組。 這是根據設計。 例如,ALTER_LOGIN [domain\group] DISABLE 會傳回下列錯誤訊息:
"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it doesn't exist or you don't have permission."
在 SQL Database 中,驗證連線和伺服器層級防火牆規則所需的登入數據會在每個資料庫中暫時快取。 此快取會定期重新整理。 若要強制重新整理驗證快取,並確定資料庫具有最新版本的登入數據表,請執行 DBCC FLUSHAUTHCACHE。
權限
需要 ALTER ANY LOGIN 許可權。
如果使用 CREDENTIAL 選項,也需要 ALTER ANY CREDENTIAL 許可權。
如果要變更的登入是 系統管理員 固定伺服器角色或 CONTROL SERVER 許可權被授出席者的成員,在進行下列變更時也需要 CONTROL SERVER 許可權:
- 重設密碼而不提供舊密碼。
- 啟用MUST_CHANGE、CHECK_POLICY或CHECK_EXPIRATION。
- 變更登入名稱。
- 啟用或停用登入。
- 將登入對應至不同的認證。
主體可以變更其本身登入的密碼、默認語言和預設資料庫。
只有具有 sysadmin
許可權的 SQL 主體,才能對 Microsoft Entra 登入執行 ALTER LOGIN 命令。
例子
這些範例也包含使用其他 SQL 產品的範例。 查看支援哪些先前的自變數。
一個。 啟用停用的登入
下列範例會啟用登入 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
。
適用於:SQL Server 2008 (10.0.x) 和更新版本,以及 Azure SQL 受控實例。
ALTER LOGIN Mary5 ADD 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
的密碼變更為已哈希值。
適用於:SQL Server 2008 (10.0.x) 和更新版本,以及 Azure SQL 受控實例。
ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO
H. 停用 Microsoft Entra 使用者的登入
下列範例會停用 Microsoft Entra 使用者的登入,joe@contoso.com。
ALTER LOGIN [joe@contoso.com] DISABLE;
相關內容
* Azure Synapse
Analytics *
Azure Synapse Analytics
Azure Synapse 的語法
ALTER LOGIN login_name
{
<status_option>
| WITH <set_option> [ , .. .n ]
}
[;]
<status_option> ::=
ENABLE | DISABLE
<set_option> ::=
PASSWORD = 'password'
[
OLD_PASSWORD = 'oldpassword'
]
| NAME = login_name
參數
login_name
指定正在變更的 SQL Server 登入名稱。 網域登入必須以 [domain\user] 格式括住方括弧。
ENABLE |禁用
啟用或停用此登入。 停用登入不會影響已連線的登入行為。 (使用 KILL
語句終止現有的連接。停用的登入會保留其許可權,而且仍然可以模擬。
PASSWORD = 'password'
僅適用於 SQL Server 登入。 指定正在變更之登入的密碼。 密碼會區分大小寫。
持續使用中的 SQL Database 連線至少每 10 小時需要重新授權(由 Database Engine 執行)。 Database Engine 會嘗試使用原始提交的密碼重新授權,而且不需要用戶輸入。 基於效能考慮,當 SQL Database 中重設密碼時,即使連線因為連線共用而重設,連線也不會重新驗證。 這與內部部署 SQL Server 的行為不同。 如果密碼自一開始授權后已變更,則必須終止連線,並使用新密碼建立的新連線。 具有KILL DATABASE CONNECTION 許可權的使用者可以使用KILL命令,明確地終止與SQL Database的連線。 如需詳細資訊,請參閱 KILL。
重要
當登入(或自主資料庫用戶)連線並經過驗證時,聯機會快取登入的相關身分識別資訊。 針對 Windows 驗證登入,這包括 Windows 群組中成員資格的相關信息。 只要維護連線,登入的身分識別就會保持驗證狀態。 若要強制變更身分識別,例如密碼重設或 Windows 群組成員資格中的變更,登入必須註銷驗證授權單位 (Windows 或 SQL Server),然後重新登入。
OLD_PASSWORD = 'old_password'
僅適用於 SQL Server 登入。 將指派新密碼之登入的目前密碼。 密碼會區分大小寫。
NAME = login_name
要重新命名之登入的新名稱。 如果這是 Windows 登入,對應至新名稱之 Windows 主體的 SID 必須符合與 SQL Server 中登入相關聯的 SID。 SQL Server 登入的新名稱不能包含反斜杠字元 (\)。
言論
在 SQL Database 中,驗證連線和伺服器層級防火牆規則所需的登入數據會在每個資料庫中暫時快取。 此快取會定期重新整理。 若要強制重新整理驗證快取,並確定資料庫具有最新版本的登入數據表,請執行 DBCC FLUSHAUTHCACHE。
權限
需要 ALTER ANY LOGIN 許可權。
如果要變更的登入是 系統管理員 固定伺服器角色或 CONTROL SERVER 許可權被授出席者的成員,在進行下列變更時也需要 CONTROL SERVER 許可權:
- 重設密碼而不提供舊密碼。
- 變更登入名稱。
- 啟用或停用登入。
- 將登入對應至不同的認證。
主體可以變更自己的登入密碼。
例子
這些範例也包含使用其他 SQL 產品的範例。 查看支援哪些先前的自變數。
一個。 啟用停用的登入
下列範例會啟用登入 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
。
適用於:SQL Server 2008 (10.0.x) 和更新版本。
ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO
F. 解除鎖定登入
若要解除鎖定 SQL Server 登入,請執行下列語句,以所需的帳戶密碼取代 ****
。
ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO
G. 使用HASHED變更登入的密碼
下列範例會將登入 TestUser
的密碼變更為已哈希值。
適用於:SQL Server 2008 (10.0.x) 和更新版本。
ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO
相關內容
* Analytics
平台系統 (PDW) *
分析平台系統
Analytics Platform System 的語法
ALTER LOGIN login_name
{
<status_option>
| WITH <set_option> [ , ... ]
}
<status_option> ::= ENABLE | DISABLE
<set_option> ::=
PASSWORD = 'password'
[
OLD_PASSWORD = 'oldpassword'
| <password_option> [ <password_option> ]
]
| NAME = login_name
| CHECK_POLICY = { ON | OFF }
| CHECK_EXPIRATION = { ON | OFF }
<password_option> ::=
MUST_CHANGE | UNLOCK
參數
login_name
指定正在變更的 SQL Server 登入名稱。 網域登入必須以 [domain\user] 格式括住方括弧。
ENABLE |禁用
啟用或停用此登入。 停用登入不會影響已連線的登入行為。 (使用 KILL
語句終止現有的連接。停用的登入會保留其許可權,而且仍然可以模擬。
PASSWORD = 'password'
僅適用於 SQL Server 登入。 指定正在變更之登入的密碼。 密碼會區分大小寫。
重要
當登入(或自主資料庫用戶)連線並經過驗證時,聯機會快取登入的相關身分識別資訊。 針對 Windows 驗證登入,這包括 Windows 群組中成員資格的相關信息。 只要維護連線,登入的身分識別就會保持驗證狀態。 若要強制變更身分識別,例如密碼重設或 Windows 群組成員資格中的變更,登入必須註銷驗證授權單位 (Windows 或 SQL Server),然後重新登入。
OLD_PASSWORD = 'old_password'
僅適用於 SQL Server 登入。 將指派新密碼之登入的目前密碼。 密碼會區分大小寫。
MUST_CHANGE
僅適用於 SQL Server 登入。 如果包含此選項,SQL Server 會在第一次使用更改登入時提示更新的密碼。
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。
開鎖
僅適用於 SQL Server 登入。 指定鎖定的登入應該解除鎖定。
言論
當CHECK_POLICY設定為 ON 時,無法使用 HASHED 自變數。
當CHECK_POLICY變更為 ON 時,會發生下列行為:
- 密碼歷程記錄會使用目前密碼哈希的值初始化。
當CHECK_POLICY變更為 OFF 時,會發生下列行為:
- CHECK_EXPIRATION也會設定為 OFF。
- 已清除密碼歷程記錄。
- 重設 lockout_time 的值。
如果指定MUST_CHANGE,CHECK_EXPIRATION和CHECK_POLICY必須設定為 ON。 否則,語句會失敗。
如果CHECK_POLICY設定為 OFF,CHECK_EXPIRATION無法設定為 ON。 具有這個選項組合的 ALTER LOGIN 語句會失敗。
您無法搭配 DISABLE 自變數使用ALTER_LOGIN來拒絕存取 Windows 群組。 這是根據設計。 例如,ALTER_LOGIN [domain\group] DISABLE 會傳回下列錯誤訊息:
"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it doesn't exist or you don't have permission."
在 SQL Database 中,驗證連線和伺服器層級防火牆規則所需的登入數據會在每個資料庫中暫時快取。 此快取會定期重新整理。 若要強制重新整理驗證快取,並確定資料庫具有最新版本的登入數據表,請執行 DBCC FLUSHAUTHCACHE。
權限
需要 ALTER ANY LOGIN 許可權。
如果使用 CREDENTIAL 選項,也需要 ALTER ANY CREDENTIAL 許可權。
如果要變更的登入是 系統管理員 固定伺服器角色或 CONTROL SERVER 許可權被授出席者的成員,在進行下列變更時也需要 CONTROL SERVER 許可權:
- 重設密碼而不提供舊密碼。
- 啟用MUST_CHANGE、CHECK_POLICY或CHECK_EXPIRATION。
- 變更登入名稱。
- 啟用或停用登入。
- 將登入對應至不同的認證。
主體可以變更其本身登入的密碼、默認語言和預設資料庫。
例子
這些範例也包含使用其他 SQL 產品的範例。 查看支援哪些先前的自變數。
一個。 啟用停用的登入
下列範例會啟用登入 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
。
適用於:SQL Server 2008 (10.0.x) 和更新版本。
ALTER LOGIN Mary5 ADD 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
的密碼變更為已哈希值。
適用於:SQL Server 2008 (10.0.x) 和更新版本。
ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO