如果 CHECK_POLICY 设置为 OFF,则 CHECK_EXPIRATION 不能设置为 ON。包含此选项组合的 ALTER LOGIN 语句将失败。
重要事项:
只有在 Windows Server 2003 及更高版本上才会强制执行 CHECK_EXPIRATION 和 CHECK_POLICY。
重要事项:
Windows Server 2003 中的一个已知问题可能会阻止错误密码计数在达到 LockoutThreshold 后重置。这可能会导致当后续登录尝试失败后立即锁定。可以通过暂时设置 CHECK_POLICY = OFF,然后设置 CHECK_POLICY = ON 来手动重置错误的密码计数。
参数
login_name
指定正在更改的 SQL Server 登录的名称。
ENABLE | DISABLE
启用或禁用此登录。
PASSWORD = 'password'
仅适用于 SQL Server 登录帐户。指定正在更改的登录的密码。
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 登录帐户。指定应解锁被锁定的登录。
权限
需要 ALTER ANY LOGIN 权限。
如果使用 CREDENTIAL 选项,则还需要 ALTER ANY CREDENTIAL 权限。
如果登录名是 sysadmin 固定服务器角色的成员或 CONTROL SERVER 权限的被授权者,则进行以下更改时还需要 CONTROL SERVER 权限:
在不提供旧密码的情况下重置密码。
启用 MUST_CHANGE、CHECK_POLICY 或 CHECK_EXPIRATION。
更改登录名。
启用或禁用登录。
将登录映射到其他凭据。
主体可更改用于自身登录的密码、默认语言以及默认数据库。
示例
A. 启用已禁用的登录
以下示例将启用 KittiLert 登录。
复制代码
ALTER LOGIN KittiLert ENABLE;
B. 更改登录密码
以下示例将 KittiLert 登录密码更改为 3948wJ698FFF7。
复制代码
ALTER LOGIN KittiLert WITH PASSWORD = '3948wJ698FFF7';
C. 更改登录名称
以下示例将 KittiLert 登录名称更改为 MacraeS。
复制代码
ALTER LOGIN KittiLert WITH NAME = MacraeS;
D. 将登录名映射到凭据
以下示例将登录名 MacraeS 映射到凭据 Custodian04。
复制代码
ALTER LOGIN MacraeS WITH CREDENTIAL = Custodian04;
改 MSDE sa 密码和登录验证模式
Microsoft SQL Desktop engine 2000 是一个常用的SQL支持数据库,但安装后其 sa 的默认密码为空,这样对数据安全有一定影响。因为MSDE2000是简化版本,无管理控制台,修改密码只能进入命令行方式。步骤:
要注意的是要在切换了SQL的身份验证方式后才可以命令行修改密码。默认的SQL身份验证方式是Windows账户模式,要改为采用SQL身份验证。
1. 在正在连接到的 MSDE 实例的宿主计算机中,打开命令提示符窗口。
2. 在命令提示符处键入以下命令,然后按 Enter 键:
osql -U sa
这样可以通过 sa 帐户连接到 MSDE 的本地默认实例。要连接到您的计算机上安装的命名实例,请键入:
osql -U sa -S servername\\instancename
随即将出现以下提示:
Password:
3. 再次按 Enter 键。此操作将为 sa 传递一个 NULL(空)密码。
如果按 Enter 键后出现以下提示,则您对 sa 帐户没有密码:
1>
为了符合安全方案的要求,Microsoft 建议您创建非空的强密码。
但是,如果收到以下错误信息,则表示您输入的密码不正确。此错误信息表示已为 sa 帐户创建了密码:
"Login Failed for user \'sa\'."
以下错误信息表示运行 SQL Server 的计算机设置为只限 Windows 身份验证:
Login failed for user \'sa\'.Reason:Not associated with a trusted SQL Server connection.
在 Windows 身份验证模式下无法验证 sa 密码。但可以创建 sa 密码,以便 sa 帐户在以后身份验证模式更改为混合模式时仍然是安全的。
如果您收到以下错误信息,则表示 SQL Server 可能未运行,或者您可能为安装的 SQL Server 的命名实例提供了错误名称:
[Shared Memory]SQL Server does not exist or access denied.
[Shared Memory]ConnectionOpen (Connect()).
另一种简单的更改 sa 密码的方法
1. 在正在连接到的 MSDE 实例的宿主计算机中,打开命令提示符窗口。
2. 键入下面的命令,然后按 Enter 键:
osql -U sa
在 Password:提示符下,按 Enter 键(如果密码为空)或键入当前密码。这样可以使用 sa 帐户连接到 MSDE 的本地默认实例。
要使用 Windows 身份验证进行连接,请键入此命令:
use osql -E
3. 在各个单独的行内键入下列命令,然后按 Enter 键:
sp_password @old = null, @new = \'password\', @loginame =\'sa\'
go