MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Sqlserver中 登录用户只能看到自己拥有权限的库大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
问题背景:公司的一台数据库服务器上放在多个数据库,每个数据库都使用不同的登录名称,但在将项目文件发布到Ftp时,有些Ftp的信息是在客户那边的
一旦客户那边使用配置文件中的数据库信息连接到数据库他就能够看到服务器上所有的数据库,然它不能访问其他的数据库但还是有安全隐患的
现在我 需要的是指定的登录用户只能看到并访问它自己的数据库而不能看到其他的数据库, 于是在网络上找到解决方案
 

Sqlserver中 登录用户只能看到自己拥有权限的库

--创建测试数据库
Create database Test;
USE master
GO
通过sp_addlogin创建登录名
--Testuser:用户登陆账号Test123456:用户登陆密码
execute sp_addlogin 'Testuser',Test123456'
在数据库Test里创建数据库Testuser账号每一个Testuser为登陆名第二个Testuser为数据库账号
execute sp_grant@R_136_4035@ 将Testuser账号添加到数据库角色为数据库所有者
execute sp_addrolemember db_owner'

Sqlserver中 登录用户只能看到自己拥有权限的库

 

 
在SSMS中使用“Testuser”账号登录后就可能看到所有的数据库

Sqlserver中 登录用户只能看到自己拥有权限的库


但如果访问的数据库不是Test则为提示没有权限

Sqlserver中 登录用户只能看到自己拥有权限的库


 

Sqlserver中 登录用户只能看到自己拥有权限的库

将所有数据库的查看权限给Public角色,每个登录用户只能查看指定的数据库
--此语句会导致服务器上所有的用户在没有设置数据库权限的情况下不会显示任何数据库,有可能会影响正常使用
DENY VIEW any DATABASE TO PUBLIC;
将数据库Test的所有权给Testuser用户Testuser用户可以查看并访问Test数据库
ALTER AUTHORIZATION ON DATABASE::Test TO Testuser

Sqlserver中 登录用户只能看到自己拥有权限的库

 

DENY VIEW any DATABASE TO PUBLIC ; ”后如果没有进行权限设置默认的登录用户是不能查看任何数据库的

Sqlserver中 登录用户只能看到自己拥有权限的库


ALTER AUTHORIZATION ON DATABASE :: Test  TO  Testuser ”后Testuser就可以只能查看并访问Test数据库了

Sqlserver中 登录用户只能看到自己拥有权限的库

大佬总结

以上是大佬教程为你收集整理的Sqlserver中 登录用户只能看到自己拥有权限的库全部内容,希望文章能够帮你解决Sqlserver中 登录用户只能看到自己拥有权限的库所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: