1. 概述
MSSQL中,系统控制用户有效期管理主要是通过CREATE LOGIN语句实现的。该语句可以创建一个用于登录SQL Server的登录帐户,同时可以指定该登录帐户的密码、默认数据库、默认语言、密码策略等等。其中,账户的有效期也可以在该语句中进行管理。
2. CREATE LOGIN语句
CREATE LOGIN语句可以用于创建SQL Server数据库引擎或Azure SQL数据库中的登录帐户。
2.1 语法
CREATE LOGIN login_name WITH
PASSWORD = 'password',
[ , DEFAULT_DATABASE = database_name ]
[ , DEFAULT_LANGUAGE = language ]
[ , CHECK_POLICY = { ON | OFF } ]
[ , CHECK_EXPIRATION = { ON | OFF } ]
[;]
2.2 参数解析
login_name: 要创建的登录名。
PASSWORD: 该登录名的密码。
DEFAULT_DATABASE: 该登录名的默认数据库。
DEFAULT_LANGUAGE: 该登录名的默认语言。
CHECK_POLICY: 是否强制执行密码策略。如果为ON,则使用与该登录名关联的策略;如果为OFF,则可以使用任何密码。
CHECK_EXPIRATION: 是否强制用户在密码过期时更改密码。如果为ON,则当密码过期时,用户必须更改密码;如果为OFF,则用户可以继续使用旧密码。
3. 给用户设置有效期
MSSQL中,可以通过设置登录帐户的密码过期时间、账户过期时间来使用户拥有有效期限制。
3.1 设置密码过期时间
可以使用ALTER LOGIN语句更改现有登录名的密码策略和过期时间。
3.1.1 语法
ALTER LOGIN login_name WITH
PASSWORD = 'password'
[ , OLD_PASSWORD = 'old_password' ]
[ , CHECK_POLICY = { ON | OFF } ]
[ , CHECK_EXPIRATION = { ON | OFF } ]
[ , CREDENTIAL = credential_name ]
[ , DEFAULT_DATABASE = target_database ]
[ , DEFAULT_LANGUAGE = language ]
[ , NAME = new_name ]
[;]
3.1.2 参数解析
login_name: 要更改的登录名。
PASSWORD: 要应用的新密码。
OLD_PASSWORD: 用于验证更改密码的旧密码。
CHECK_POLICY: 是否强制执行密码策略。如果为ON,则使用与该登录名关联的策略;如果为OFF,则可以使用任何密码。
CHECK_EXPIRATION: 是否强制用户在密码过期时更改密码。如果为ON,则当密码过期时,用户必须更改密码;如果为OFF,则用户可以继续使用旧密码。
3.2 设置账户过期时间
可以使用ALTER LOGIN语句更改现有登录名的过期时间。
3.2.1 语法
ALTER LOGIN login_name
WITH NAME = new_login_name
[ , ENABLE | DISABLE ]
, ALTER EXPIRED | WITH PASSWORD = 'password'
[;]
3.2.2 参数解析
login_name: 要更改的登录名。
new_login_name: 可选:更改的登录名。如果省略,则使用现有名称。
ENABLE | DISABLE: 启用或禁用该登录名。如果省略,登录名将保持其当前状态。
EXPIRED | WITH PASSWORD = 'password': 将登录名的过期状态更改为过期或提供新密码。
4. 示例
以下示例演示如何使用CREATE LOGIN和ALTER LOGIN语句来创建新帐户并将其密码过期时间设置为60天。
4.1 使用CREATE LOGIN创建帐户
CREATE LOGIN TestLogin WITH PASSWORD = 'ABc123!@#', CHECK_EXPIRATION = ON, CHECK_POLICY = ON;
4.2 使用ALTER LOGIN设置密码过期时间
ALTER LOGIN TestLogin WITH PASSWORD = 'ABc123!@#', CHECK_POLICY = ON, CHECK_EXPIRATION = ON;
运行上面的ALTER LOGIN语句后,该帐户的密码过期时间将被设置为60天。
5. 总结
MSSQL系统控制用户有效期管理是通过CREATE LOGIN和ALTER LOGIN语句实现的。开发人员可以使用这些语句来创建和管理SQL Server数据库引擎或Azure SQL数据库中的登录帐户,并设置其密码过期时间和账户过期时间,从而控制用户的有效期。使用这些功能可以提高数据库的安全性,避免因为长期没有更改密码或账户过期而导致的安全问题。