我使用Power BI(报告编写软件)连接到我的SQL工作室经理。我只希望出现在某个模式下列出的表,并拒绝访问所有其他模式的权限,而不是显示它当前所有的表。
通常,在阻止个人用户访问模式时,我会使用以下代码:
revoke select on schema::UnwantedSchema to User
grant select on schema::WantedSchema To User
但是,现在我想要它,以便所有用户和登录都具有这些权限设置。不仅仅是个人用户。有没有办法在不必为每个用户设置权限的情况下执行此操作?
答案 0 :(得分:1)
如果要将权限设置为多个用户登录,则需要创建角色并将角色分配给该角色的角色。为创建的角色提供所需的权限。
以下是示例步骤。
--Create a new role
EXEC sp_addrole 'yourRole'
GO
--Assiging role to the user
EXEC sp_addrolemember 'yourRole', 'yourUser';
GO
--Assigning permissions to the Role
GRANT ALTER, DELETE, EXECUTE, INSERT, REFERENCES, SELECT,
UPDATE, VIEW DEFINITION ON SCHEMA::YourSchema TO yourRole;
GO
GRANT CREATE TABLE, CREATE PROCEDURE, CREATE FUNCTION, CREATE VIEW TO yourRole;
GO