在 Microsoft SQL Server 中,您可以在服务器和数据库级别设置权限。您还可以选择服务器登录名或数据库用户,然后设置安全对象。我想知道从安全角度来看,在这两种策略之间进行选择意味着什么。权限或安全对象是否优先于另一个?
在本文中,安全对象被定义为“主体可以访问的资源”,而权限被定义为“特定主体在安全对象上授予的访问类型”。这在纸面上听起来完全合理。但是,在 Microsoft SQL Server Management Studio 中,我看到在授予或授予时可以在“CustomDatabase -> Properties -> Permissions -> CustomUser”和“CustomDatabase -> Security -> Users -> CustomUser -> Properties -> Securables”之间进行选择拒绝用户对同一个数据库执行相同的操作。
假设我希望用户能够读取数据库中的所有表。我应该在数据库属性窗口中授予用户 SELECT 权限还是应该在用户属性窗口中授予用户 SELECT 安全权限?在这种情况下,与选择一个而不是另一个有什么区别?在选择要采用的用户授权策略时,是否还有其他情况需要考虑?
非常感谢对此事的任何见解,因为我在其他任何地方都找不到任何令人满意的解释。