【发布时间】:2021-05-13 02:12:20
【问题描述】:
我正在使用 ERD 创建审计计划,从下图可以看到有一个权限表,其中四个 FK 列引用其他四个表 PK 列。我只是对 ID 与其他表的关系以及它如何在权限表中正确显示感到困惑?
对于用户表,我从“master.sys.server_principals”中导入了数据。
对于 Instance 表,我使用 @@SERVERNAME 导入了数据。
对于 Databases 表,我从master.sys.databases 导入了数据。
对于对象类型表,我从master.sys.objects 导入数据。
现在,我目前在权限表上并停留在这一点上,因为我想知道 ID 将如何从其他四个表(上面提到并在下面的图片链接中显示)匹配到这个权限表。我知道我需要从master.sys.database_permissions 查询以获取“Permissions_Permission_Name”和“Permissions_Object_Name”这两个列的信息,但这只是我对其他四个 ID 列感到困惑...(您可以忽略列 Permissions_ID)
【问题讨论】:
-
“对于Users表,我从'master.sys'中导入了数据。” 问题:为什么要复制数据库服务器上已有的数据?您可以在查询中使用 sys.server.. 表,您不必重复信息,或担心索引。而且,您无需担心实际检查,SQLServer 将执行它们并提供对话框用户权限。我会说,不要重新发明轮子。为此还有其他工具,例如 OAuth.. 可供下载和使用。
-
@Goodies - 感谢您对此的回复,我了解我正在寻找的信息已经存在于数据库服务器上,您提到的几点都是有道理的。这个过程到位只是为了看看我是否能做到这一点。那么您是否认为有一种方法可以让 ID 正确显示在权限表上,如何才能做到这一点?谢谢。
标签: sql sql-server ssms audit erd