阻止所有用户访问模式

时间:2016-09-06 11:25:57

标签: sql sql-server ssms powerbi

我使用Power BI(报告编写软件)连接到我的SQL工作室经理。我只希望出现在某个模式下列出的表,并拒绝访问所有其他模式的权限,而不是显示它当前所有的表。

通常,在阻止个人用户访问模式时,我会使用以下代码:

revoke select on schema::UnwantedSchema to User
grant select on schema::WantedSchema To User

但是,现在我想要它,以便所有用户和登录都具有这些权限设置。不仅仅是个人用户。有没有办法在不必为每个用户设置权限的情况下执行此操作?

1 个答案:

答案 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