首页 > 解决方案 > 在 SQL Server 的不同数据库和表中查找用户信息

问题描述

我有很多包含用户信息的不同数据库和表。我想写一个查询,可以找到所有必要的信息。因此,当我使用“where”子句时(例如 where Email = 'Example@example.com',或其中 Name = 'Mister Holmes' 等),它应该会显示我正在寻找的结果并从所有相关数据库中搜索和桌子。

我的想法是创建一个新视图,将所有相关表放入其中,然后以某种方式加入必要的列。那可能吗?

有人可以帮忙吗?

标签: sqlsql-server

解决方案


我有同样的问题。我只是描述我的方式 - 因为我有许多不同的数据库,其中存储了关于用户的不同信息,所以我用 INSERT 收集所有这些数据库,每次我在寻找 WHERE SOMETHING 时,我都在运行:

  • 截断目标表(已经准备好必要的 coll,如 NAME、LOGIN、RIGHTS、APPS、NOTES 等)
  • 用来自视图的数据填充目标表,这些数据特定于每个数据库/应用程序/或用户组

这两个点我存储在程序中。也许这不是最快的方法,但是在一个静态表上搜索和过滤比在 20 个视图中搜索要安全得多,消耗更少。但是,请注意,我不是唯一的 DBA,而且您有同事在您所在地区扮演管理 sql 的角色,我认为,这个解决方案并不幸运。

或者您在 server_principals、server_role_members、database_principals、database_permissions、schema 中是否有标准用户信息?


推荐阅读