gpt4 book ai didi

sql - 如何查看 SQL 数据库的所有授权?

转载 作者:行者123 更新时间:2023-12-03 14:35:58 25 4
gpt4 key购买 nike

我正在使用 SQL Server 2005,我想找出所有表的特定数据库上的所有授权。它还有助于找出已为特定用户授予删除权限的所有表。

注意:这可能类似于 this question ,但我无法使所选答案的解决方案起作用(如果有人可以提供一个更好的示例来说明如何使用它,它也会有所帮助)

最佳答案

给定的解决方案不包括针对架构或数据库本身授予权限的位置,它们也授予针对表的权限。这也会给你这些情况。您可以对permission_name 使用WHERE 子句来限制为DELETE。

SELECT 
class_desc
, CASE WHEN class = 0 THEN DB_NAME()
WHEN class = 1 THEN OBJECT_NAME(major_id)
WHEN class = 3 THEN SCHEMA_NAME(major_id) END [Securable]
, USER_NAME(grantee_principal_id) [User]
, permission_name
, state_desc
FROM sys.database_permissions

此外,需要检查 db_datawriter 的成员资格,因为它提供了隐式的 INSERT、UPDATE 和 DELETE 权限,这意味着您不会看到它出现在许可 DMV 或其衍生产品中。

关于sql - 如何查看 SQL 数据库的所有授权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/497317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com