SQL Server-隐藏数据库并限制用户仅查看一个视图对象
根据标题,我想在SQL Server 2012中创建一个用户,该用户:SQL Server-隐藏数据库并限制用户仅查看一个视图对象,sql,sql-server,database,view,sql-server-2012,Sql,Sql Server,Database,View,Sql Server 2012,根据标题,我想在SQL Server 2012中创建一个用户,该用户: 在其他数据库中只能看到1个数据库(比如TestDB) 在TestDB中的其他视图和表中只能看到1个视图(比如TestView) 为了隐藏所有其他数据库,我执行以下命令: USE master; DENY VIEW ANY DATABASE TO TestUser; Use TestDB; ALTER AUTHORIZATION ON DATABASE::TestDB TO TestUser; 现在,如何限制TestUser
USE master;
DENY VIEW ANY DATABASE TO TestUser;
Use TestDB;
ALTER AUTHORIZATION ON DATABASE::TestDB TO TestUser;
现在,如何限制TestUser仅查看TestView(拒绝其他表和视图)?您必须在除TestView之外的所有视图上设置拒绝视图定义
DENY VIEW DEFINITION ON NonTestView TO TestUser
所以我需要对所有视图和表逐个执行操作?如果有,思考可能有更有效的方法。您可以使用[INFORMATION_SCHEMA].[VIEWS]创建语句。如下所示:从[INFORMATION\u SCHEMA].[VIEWS]中选择“拒绝对“+TABLE\u NAME+”的视图定义,以测试用户”。只需删除TestView的结果。