20260821230656

This commit is contained in:
oneao committed 2026-08-21 23:06:56 +08:00
1 parent 2e5d532f23
commit c43b4c8364
144 files changed
+7665 -242

No files matched your search

@@ -1,40 +1,46 @@
/*
登录日志表 s_login_log:记录每次登录尝试(成功/失败)的客户端环境与结果,用于登录审计。
登录日志表 s_log_login:记录每次登录尝试(成功/失败)的客户端环境与结果,用于登录审计。
后端在登录时统一采集 IP、IP 归属地、浏览器/版本、操作系统/版本、设备类型、原始 User-Agent,
并通过通用 saveobjt 接口写入本表;前端通过分页接口只读展示。
表名使用 s_ 前缀以区别于业务模块表(b_)。
说明:表名原为 s_login_log,新系统统一更名为 s_log_login(见《FMS新系统核心表结构设计.md》
3.17 与 5.2 旧表映射),列结构同步更新(新增 b_login_type、b_request_id、b_trace_id,
时间列由 b_login_time 改为 b_occurdatetime,UTC 存储)。
可重复执行:通过 sys.tables 存在性判断避免重复建表。
*/
SET NOCOUNT ON;
BEGIN TRANSACTION;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = N's_login_log')
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = N's_log_login')
BEGIN
CREATE TABLE dbo.s_login_log (
CREATE TABLE dbo.s_log_login (
b_id bigint NOT NULL,
b_org_id nvarchar(50) NULL,
b_user_id bigint NULL,
b_account nvarchar(50) NULL,
b_login_time datetime NOT NULL CONSTRAINT DF_s_login_log_time DEFAULT (GETDATE()),
b_ip nvarchar(50) NULL,
b_ip_location nvarchar(200) NULL,
b_browser nvarchar(100) NULL,
b_browser_version nvarchar(50) NULL,
b_os nvarchar(100) NULL,
b_os_version nvarchar(50) NULL,
b_device_type nvarchar(20) NULL,
b_user_agent nvarchar(max) NULL,
b_login_result int NOT NULL CONSTRAINT DF_s_login_log_result DEFAULT (0),
b_account varchar(50) NULL,
b_login_type varchar(20) NOT NULL, -- 登录类型:password/token/oidc/ldap
b_login_result int NOT NULL CONSTRAINT DF_s_log_login_result DEFAULT (0),
b_fail_reason nvarchar(200) NULL,
b_session_id nvarchar(50) NULL,
CONSTRAINT PK_s_login_log PRIMARY KEY (b_id)
b_ip varchar(50) NULL,
b_ip_location nvarchar(200) NULL,
b_browser varchar(100) NULL,
b_browser_version varchar(50) NULL,
b_os varchar(100) NULL,
b_os_version varchar(50) NULL,
b_device_type varchar(20) NULL,
b_user_agent nvarchar(max) NULL,
b_session_id varchar(50) NULL,
b_request_id varchar(64) NULL,
b_trace_id varchar(64) NULL,
b_occurdatetime datetime2 NULL CONSTRAINT DF_s_log_login_occur DEFAULT (sysutcdatetime()),
CONSTRAINT PK_s_log_login PRIMARY KEY (b_id)
);
CREATE INDEX IX_s_login_log_time ON dbo.s_login_log (b_login_time DESC, b_id);
CREATE INDEX IX_s_login_log_account ON dbo.s_login_log (b_account, b_login_time DESC);
CREATE INDEX IX_s_login_log_result ON dbo.s_login_log (b_login_result, b_login_time DESC);
CREATE INDEX IX_s_log_login_user ON dbo.s_log_login (b_user_id, b_occurdatetime DESC);
CREATE INDEX IX_s_log_login_account ON dbo.s_log_login (b_account, b_occurdatetime DESC);
CREATE INDEX IX_s_log_login_result ON dbo.s_log_login (b_login_result, b_occurdatetime DESC);
END
COMMIT TRANSACTION;
@@ -9,7 +9,7 @@ BEGIN TRANSACTION;
IF OBJECT_ID(N'dbo.b_user', N'U') IS NULL
BEGIN
CREATE TABLE dbo.b_user (
b_id bigint NOT NULL,
b_id bigint IDENTITY(1,1) NOT NULL,
b_account nvarchar(50) NOT NULL,
b_name nvarchar(50) NULL,
b_department nvarchar(50) NULL,
@@ -56,7 +56,7 @@ END;
IF OBJECT_ID(N'dbo.s_module', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_module (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_code varchar(50) NOT NULL,
b_parent_id bigint NULL,
b_name nvarchar(100) NOT NULL,
@@ -92,7 +92,7 @@ END;
IF OBJECT_ID(N'dbo.s_field', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_field (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_module_id bigint NOT NULL,
b_field varchar(50) NOT NULL,
b_name nvarchar(100) NOT NULL,
@@ -125,7 +125,7 @@ END;
IF OBJECT_ID(N'dbo.s_field_group', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_field_group (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_module_id bigint NOT NULL,
b_parent_id bigint NULL,
b_title nvarchar(100) NOT NULL,
@@ -142,7 +142,7 @@ END;
IF OBJECT_ID(N'dbo.s_field_view', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_field_view (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_module_id bigint NOT NULL,
b_field_id bigint NOT NULL,
b_group_id bigint NULL,
@@ -159,7 +159,7 @@ END;
IF OBJECT_ID(N'dbo.s_field_edit', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_field_edit (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_module_id bigint NOT NULL,
b_field_id bigint NOT NULL,
b_group_id bigint NULL,
@@ -177,7 +177,7 @@ END;
IF OBJECT_ID(N'dbo.s_field_query', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_field_query (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_module_id bigint NOT NULL,
b_field_module_id bigint NOT NULL,
b_field_id bigint NOT NULL,
@@ -198,7 +198,7 @@ END;
IF OBJECT_ID(N'dbo.s_relation', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_relation (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_code varchar(50) NOT NULL,
b_module_id bigint NOT NULL,
b_target_module_id bigint NOT NULL,
@@ -238,7 +238,7 @@ END;
IF OBJECT_ID(N'dbo.s_menu', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_menu (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_parent_id bigint NULL,
b_code varchar(50) NOT NULL,
b_name nvarchar(100) NOT NULL,
@@ -262,7 +262,7 @@ END;
IF OBJECT_ID(N'dbo.s_autocode', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_autocode (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_module_id bigint NOT NULL,
b_field_id bigint NOT NULL,
b_prefix nvarchar(100) NOT NULL CONSTRAINT DF_s_autocode_prefix DEFAULT (N''),
@@ -284,7 +284,7 @@ END;
IF OBJECT_ID(N'dbo.s_role', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_role (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_code varchar(50) NOT NULL,
b_name nvarchar(100) NOT NULL,
b_i18n varchar(150) NULL,
@@ -305,7 +305,7 @@ END;
IF OBJECT_ID(N'dbo.s_user_role', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_user_role (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_user_id bigint NOT NULL,
b_role_id bigint NOT NULL,
b_canuse int NOT NULL CONSTRAINT DF_s_user_role_canuse DEFAULT (1),
@@ -319,7 +319,7 @@ END;
IF OBJECT_ID(N'dbo.s_power', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_power (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_code varchar(50) NOT NULL,
b_name nvarchar(100) NOT NULL,
b_i18n varchar(150) NULL,
@@ -346,7 +346,7 @@ END;
IF OBJECT_ID(N'dbo.s_role_power', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_role_power (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_role_id bigint NOT NULL,
b_power_id bigint NOT NULL,
b_effect varchar(10) NOT NULL CONSTRAINT DF_s_role_power_effect DEFAULT ('allow'),
@@ -362,7 +362,7 @@ END;
IF OBJECT_ID(N'dbo.s_role_scope', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_role_scope (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_role_id bigint NOT NULL,
b_module_id bigint NOT NULL,
b_operation varchar(20) NOT NULL,
@@ -389,7 +389,7 @@ END;
IF OBJECT_ID(N'dbo.s_i18n', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_i18n (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_key varchar(150) NOT NULL,
b_locale varchar(20) NOT NULL,
b_value nvarchar(500) NOT NULL,
@@ -404,8 +404,7 @@ END;
IF OBJECT_ID(N'dbo.s_log_technical', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_log_technical (
b_id bigint IDENTITY(1,1) NOT NULL,
b_org_id varchar(50) NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_user_id bigint NULL,
b_account varchar(50) NULL,
b_sourcetype varchar(20) NULL,
@@ -426,15 +425,13 @@ BEGIN
CONSTRAINT PK_s_log_technical PRIMARY KEY (b_id)
);
CREATE INDEX IX_s_log_technical_trace ON dbo.s_log_technical (b_trace_id, b_occurdatetime DESC);
CREATE INDEX IX_s_log_technical_org ON dbo.s_log_technical (b_org_id, b_occurdatetime DESC);
CREATE INDEX IX_s_log_technical_level ON dbo.s_log_technical (b_loglevel, b_occurdatetime DESC);
END;
IF OBJECT_ID(N'dbo.s_log_login', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_log_login (
b_id bigint IDENTITY(1,1) NOT NULL,
b_org_id varchar(50) NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_user_id bigint NULL,
b_account varchar(50) NULL,
b_login_type varchar(20) NOT NULL,
@@ -462,7 +459,7 @@ END;
IF OBJECT_ID(N'dbo.s_log_audit', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_log_audit (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_event_code varchar(50) NOT NULL,
b_module_code varchar(50) NULL,
b_data_id varchar(50) NULL,
@@ -485,7 +482,7 @@ END;
IF OBJECT_ID(N'dbo.s_log_audit_field', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_log_audit_field (
b_id bigint IDENTITY(1,1) NOT NULL,
b_id bigint NOT NULL, -- 雪花主键(应用层生成,全局唯一)
b_event_id bigint NOT NULL,
b_module_code varchar(50) NULL,
b_data_id varchar(50) NULL,