有人可以让我知道如何阻止用户(创建者除外)访问或查看某些表、视图和存储过程吗?
我目前正在使用 SSMS,但不确定要选择哪些选项:
我已更新此问题以解决@Bhavani 下面提供的解决方案,因为他的建议似乎不起作用。
我将 Azure Active Directory 用户添加到数据库,如下所示:
CREATE USER [[email protected]]
FROM EXTERNAL PROVIDER
WITH DEFAULT_SCHEMA = config;
ALTER ROLE db_datareader ADD MEMBER [[email protected]];
然后我拒绝了对名为 dbo.UpdatedProducts 的表的所有访问,如下所示
完成上述操作后,当 [电子邮件受保护] 访问数据库时,他仍然可以在表 dbo.UpdatedProducts 上读取、选择、更改等。
如果我错过了某个步骤,有人可以告诉我吗?
以下是有关如何阻止用户(创建者除外)访问或查看某些数据库对象的分步指南:
与 AAD 用户合作时,请务必注意权限是通过角色和成员身份管理的。不要使用
DENY
权限,而是考虑使用 GRANT
和 REVOKE
的组合来管理权限。拒绝权限使用起来可能很棘手,并且由于继承的原因可能并不总是按预期运行。
-- Revoke permissions explicitly if previously granted
REVOKE SELECT, INSERT, UPDATE, DELETE ON dbo.UpdatedProducts TO [[email protected]];
-- Grant only the necessary permissions
GRANT SELECT ON dbo.UpdatedProducts TO [[email protected]];