Skip to content

PERSONAL_ACCESS_TOKENS 个人访问令牌表

Personal Access Token(PAT)是用户手动创建的长期访问凭证,用于脚本、CLI、CI/CD 等无法交互式登录的场景。用户拿到 PAT 后,将其作为 Bearer token 携带在请求中,或者URL参数 access_token传递,即可代替用户名密码完成鉴权。

位置

模型路径:/sysdata/data/tables/sec/PERSONAL_ACCESS_TOKENS.tbl

物理表名:SZSYS_5_PERSONAL_ACCESS_TOKENS

表结构

字段名字段类型字段描述
IDVARCHAR(128)主键,sha256(rawToken)。鉴权时对请求中携带的原始 token 做 SHA-256 后以此值查表
USER_IDVARCHAR(128)所属用户 ID
USER_DIRECTORYVARCHAR(64)用户目录,sys 系统用户、external 外部用户
NAMEVARCHAR(256)用户给 token 取的备注名,如 "My CI Script"
DESCVARCHAR(1024)用途描述,如 "用于 Jenkins 自动部署流水线"
ENABLEDNUMBER(1)是否启用。1 有效,0 已吊销。吊销时清除关联 session
EXPIRE_TIMETIMESTAMP过期时间,由用户指定(按天/月或永不过期)
CREATE_TIMETIMESTAMP创建时间

表索引

类型名称字段列表是否唯一说明
主键PRIMARYIDsha256(rawToken) 哈希值作为主键,鉴权时直接主键 lookup

快速理解

PAT 鉴权流程

用户携带 PAT 请求资源时,系统按以下流程鉴权:

步骤阶段动作
1请求拦截识别 Authorization: Bearer succ-xxx 前缀
2凭证校验对 rawToken 做 SHA-256,查 PERSONAL_ACCESS_TOKENS 确认 token 有效且未过期
3会话分配以 PAT 主键(sha256(rawToken))作为 session ID 创建 Session
4用户登录校验用户状态,创建 HTTP Session
5后续请求同一 rawToken 再次请求时,直接通过 session ID(即 PAT ID)查找已有会话

数据示例

以下展示 PAT 的典型落表形态。ID 由 sha256 计算,示例中用可读占位表示。

IDUSER_IDNAMEDESCENABLEDEXPIRE_TIMECREATE_TIME
a1b2c3...adminMy CI Token用于 Jenkins 自动部署流水线12026-09-17 10:00:002026-06-17 10:00:00
f7g8h9...zhangsan数据导出脚本每日凌晨导出报表数据02027-01-01 00:00:002026-01-01 00:00:00
  • 第 1 行:admin 创建的 PAT,有效期 3 个月。
  • 第 2 行:zhangsan 的 PAT 已被吊销(ENABLED = 0),即使未到过期时间也无法使用。

使用注意

  1. IDsha256(rawToken) 哈希,不可反推。rawToken 仅在创建时返回一次,之后无法找回。
  2. ENABLED = 0 后鉴权立即失效,关联 session 被清除。
  3. session ID 为 PAT 主键(sha256(rawToken)),PAT 表自身承载 session 标识。
  4. rawToken 以 succ- 为前缀,鉴权时通过前缀区分 PAT 和普通 access_token,避免盲目 sha256 所有 token。
微信公众号微信公众号:山川软件