打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Sqlserver中 登录用户只能看到自己拥有权限的库
问题背景:公司的一台数据库服务器上放在多个数据库,每个数据库都使用不同的登录名称,但在将项目文件发布到Ftp时,有些Ftp的信息是在客户那边的
一旦客户那边使用配置文件中的数据库信息连接到数据库他就能够看到服务器上所有的数据库,虽然它不能访问其他的数据库但还是有安全隐患的
现在我需要的是指定的登录用户只能看到并访问它自己的数据库而不能看到其他的数据库,于是在网络上找到解决方案
 
--创建测试数据库Create database Test;USE masterGO--通过sp_addlogin创建登录名--TestUser:用户登陆账号--Test123456:用户登陆密码execute sp_addlogin 'TestUser','Test123456'--在数据库Test里创建数据库TestUser账号--每一个TestUser为登陆名--第二个TestUser为数据库账号execute sp_grantdbaccess 'TestUser','TestUser'--将TestUser账号添加到数据库角色为数据库所有者execute sp_addrolemember 'db_owner','TestUser'

 

在SSMS中使用“TestUser”账号登录后就可能看到所有的数据库
但如果访问的数据库不是Test则为提示没有权限
USE masterGO--将所有数据库的查看权限给Public角色,每个登录用户只能查看指定的数据库--此语句会导致服务器上所有的用户在没有设置数据库权限的情况下不会显示任何数据库,有可能会影响正常使用DENY VIEW any DATABASE TO PUBLIC;--将数据库Test的所有权给TestUser用户--TestUser用户可以查看并访问Test数据库ALTER AUTHORIZATION ON DATABASE::Test TO TestUser

 

“DENY VIEW any DATABASE TO PUBLIC;”后如果没有进行权限设置默认的登录用户是不能查看任何数据库的
“ALTER AUTHORIZATION ON DATABASE::Test TO TestUser”后TestUser就可以只能查看并访问Test数据库了
参考:
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Sql Server来龙去脉系列 必须知道的权限控制核心篇
《SQLServer数据库应用基础教程》第十二章安全管理
mysql常识和基本操作
mysql报错:Error Code: 1044. Access denied for user 'root'@'%' to database
修改数据库的兼容级别
批量修改NTFS权限、删除未知帐户
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服