当使用 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。