码迷,mamicode.com
首页 > 数据库 > 详细

如何让登录的Longin链接SQL SERVER时,在数据库中只能看到有权限的数据库

时间:2015-01-29 19:25:30      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

一般情况下,在sql server中创建的Login,不管权限大小,都是可以看到其所在sql server中所有的数据库,可以通过以下T-SQL验证

技术分享
IF EXISTS (SELECT * FROM sys.server_principals sp  WHERE name = test)  
   DROP LOGIN test  
GO  

CREATE LOGIN test WITH PASSWORD = test 

GO   

--检查test是否有查看任何数据库以及连接SQL SERVER的权限  
 EXECUTE AS Login = test 
 SELECT SUSER_NAME() LoginName,USER_NAME() DBUserName  

            ,HAS_PERMS_BY_NAME(null,null,VIEW ANY DATABASE) HasViewAnyDB  

           ,HAS_PERMS_BY_NAME(null,null,CONNECT SQL) HasConnectSQL  
 REVERT 
View Code

不要把Login映射到数据库上,选择数据库属性,修改所有者为该Login,在执行

USE master 

GO 

  

DENY VIEW ANY DATABASE TO test
 GO 


需要注意的是用该Login登录SQL,是SA的权限,权限管控部分暂时没有找到管控的方法

如何让登录的Longin链接SQL SERVER时,在数据库中只能看到有权限的数据库

标签:

原文地址:http://www.cnblogs.com/Fly446854715/p/4260535.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!