Sqlserver中 登录用户只能看到自己拥有权限的库
发布时间:2020-12-12 12:59:29 所属栏目:MsSql教程 来源:网络整理
导读:问题背景:公司的一台数据库服务器上放在多个数据库,每个数据库都使用不同的登录名称,但在将项目文件发布到Ftp时,有些Ftp的信息是在客户那边的 一旦客户那边使用配置文件中的数据库信息连接到数据库他就能够看到服务器上所有的数据库,虽然它不能访问其他的
问题背景:公司的一台数据库服务器上放在多个数据库,每个数据库都使用不同的登录名称,但在将项目文件发布到Ftp时,有些Ftp的信息是在客户那边的
一旦客户那边使用配置文件中的数据库信息连接到数据库他就能够看到服务器上所有的数据库,虽然它不能访问其他的数据库但还是有安全隐患的
现在我
需要的是指定的登录用户只能看到并访问它自己的数据库而不能看到其他的数据库,
于是在网络上找到解决方案
?
--创建测试数据库 Create database Test; USE master GO 通过sp_addlogin创建登录名 --TestUser:用户登陆账号Test123456:用户登陆密码 execute sp_addlogin 'TestUser',Test123456' 在数据库Test里创建数据库TestUser账号每一个TestUser为登陆名第二个TestUser为数据库账号 execute sp_grantdbaccess 将TestUser账号添加到数据库角色为数据库所有者 execute sp_addrolemember db_owner' ? ? 在SSMS中使用“TestUser”账号登录后就可能看到所有的数据库但如果访问的数据库不是Test则为提示没有权限 ? 将所有数据库的查看权限给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数据库了 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 安装sqlserver 2008时,检测的时候总是提示需要重新启动,重
- sql – 如何在teradata中的文本字段中过滤掉非数字值?
- SQL2005 学习笔记 窗口函数(OVER)
- 配置SQLServer发送电子邮件的介绍
- SQL Server Weird Grouping Scenario由多列和OR组成
- 数据库术语中的关系是什么?
- sql-server – 在IF ELSE语句中删除临时表
- SQLSERVER2000重新安装附加数据库问题
- how to get source sde database type of layer
- SQL Server EXEC(EXECUTE)函数访问INSERTED或DELETED的内部