You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询ASE Sybase数据库的所有用户、创建日期及分配角色

获取ASE Sybase用户列表、创建日期及角色的方法

1. 基础查询(含登录创建日期+服务器角色)

要获取登录账户的创建日期,直接从master.dbo.syslogins的crdate字段读取即可,结合系统表关联可同时拿到分配的角色:

SELECT 
    l.name AS 登录名,
    CONVERT(VARCHAR(20), l.crdate, 120) AS 创建日期,
    u.name AS 数据库用户名,
    r.name AS 服务器角色
FROM 
    master.dbo.syslogins l
LEFT JOIN 
    master.dbo.syssrvrolemembers srm ON l.suid = srm.suid
LEFT JOIN 
    master.dbo.sysroles r ON srm.srid = r.srid
LEFT JOIN 
    目标数据库名.dbo.sysusers u ON l.suid = u.suid
ORDER BY 
    l.name, r.name;

2. 数据库级角色查询

如果需要获取用户在特定数据库中的角色,需查询对应数据库的sysmembers和sysusers表:

USE 目标数据库名;
GO

SELECT 
    l.name AS 登录名,
    CONVERT(VARCHAR(20), l.crdate, 120) AS 创建日期,
    u.name AS 数据库用户名,
    g.name AS 数据库角色
FROM 
    master.dbo.syslogins l
JOIN 
    sysusers u ON l.suid = u.suid
LEFT JOIN 
    sysmembers m ON u.uid = m.memberuid
LEFT JOIN 
    sysusers g ON m.groupuid = g.uid
WHERE 
    g.isrole = 1 -- 筛选出角色账户
ORDER BY 
    l.name, g.name;

关键说明

  • syslogins.crdate就是登录账户的创建时间,之前没找到可能是忽略了这个字段,或者混淆了数据库用户(sysusers.crdate)和登录账户的创建日期。
  • sp_display主要用于展示数据库对象(如表、存储过程)的信息,并不适合查询用户-角色关联关系,直接关联系统表是更可靠的方式。
  • 如果需要遍历所有数据库的用户角色,可以结合sp_msforeachdb存储过程实现批量查询。

内容的提问来源于stack exchange,提问作者Sanchit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 02:32:51