授予的权限存储在 SQL Server 中的哪里?

授予的权限存储在 SQL Server 中的哪里?

当使用 GRANT 函数在 SQL Server 中授予用户某些权限时,它会记录在哪里?

答案1

尝试这些:

在“主”数据库中:

sys.syslogins
sys.sysusers
sys.sql_logins

我认为 INFORMATION_SCHEMA.TABLE_PRIVILEGES 只是允许授予的内容和由谁授予的列表。

有一张sys.syspermissions桌子,但是看上去非常丑陋,而且我不完全确定它存储了什么。

编辑:以上都不是。相反,它是恰如其名的 sys.database_permissions 桌子。现在我觉得自己很蠢。

答案2

服务器级别权限存储在通过sys.server_premissions目录视图。

数据库级别权限存储在通过sys.database_permissions目录视图。

会话可以通过询问内置的fn_my_permissions表函数。

要验证会话是否具有特定权限,请使用HAS_PERMS_BY_NAME功能。

答案3

我会首先查看主数据库。尝试 INFORMATION_SCHEMA.TABLE_PRIVILEGES。

相关内容