查询 检查 SQL 用户密码策略信息
select * from sys.syslogins
SELECT name,
is_policy_checked,
is_expiration_checked,
LOGINPROPERTY(name, 'IsMustChange') AS IsMustChange,
LOGINPROPERTY(name, 'IsLocked') AS IsLocked,
LOGINPROPERTY(name, 'LockoutTime') AS LockoutTime,
LOGINPROPERTY(name, 'PasswordLastSetTime') AS PasswordLastSetTime,
LOGINPROPERTY(name, 'IsExpired') AS IsExpired,
LOGINPROPERTY(name, 'HistoryLength') AS HistoryLength,
LOGINPROPERTY(name, 'DaysUntilExpiration') AS DaysUntilExpiration ,
modify_date
FROM sys.sql_logins;
有些列是继承 sys.server_principals
sys.server_principals 列说明如下
列名称 | 数据类型 | 说明 |
---|---|---|
name | sysname | 主体的名称。 在服务器中是唯一的。 |
principal_id | int | 主体的 ID 号。 在服务器中是唯一的。 |
sid | varbinary(85) | 主体的 SID(安全标识符)。 如果是 Windows 主体,则它与 Windows SID 匹配。 |
type | char(1) | 主体类型: S = SQL 登录名 U = Windows 登录名 G = Windows 组 R = 服务器角色 C = 映射到证书的登录名 E = 来自 Microsoft Entra ID 的外部登录 X = 来自 Microsoft Entra 组或应用程序的外部组 K = 映射到非对称密钥的登录名 |
type_desc | nvarchar(60) | 主体类型的说明: SQL_LOGIN WINDOWS_LOGIN WINDOWS_GROUP SERVER_ROLE CERTIFICATE_MAPPED_LOGIN EXTERNAL_LOGIN EXTERNAL_GROUP ASYMMETRIC_KEY_MAPPED_LOGIN |
is_disabled | int | 1 = 禁用登录名。 |
create_date | datetime | 主体的创建时间。 |
modify_date | datetime | 上次修改主体定义的时间。 |
default_database_name | sysname | 该主体的默认数据库。 |
default_language_name | sysname | 该主体的默认语言。 |
credential_id | int | 与该主体关联的凭据的 ID。 如果没有与该主体关联的凭据,则 credential_id 将为 NULL。 |
owning_principal_id | int | 服务器角色所有者的principal_id。 如果主体不是服务器角色,则为 NULL。 |
is_fixed_role | bit | 如果主体是具有固定权限的内置服务器角色之一,则返回 1。 有关详细信息,请参阅 服务器级别角色。 |
参考:
密码策略 - SQL Server | Microsoft Learn
sys.sql_logins (Transact-SQL) - SQL Server | Microsoft Learn
sys.server_principals (Transact-SQL) - SQL Server | Microsoft Learn