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

转自:https://www.cnblogs.com/huangtailang/p/4209180.html
SSMS设置:https://www.cnblogs.com/willingtolove/p/9122738.html
问题背景:公司的一台数据库服务器上放在多个数据库,每个数据库都使用不同的登录名称,但在将项目文件发布到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','TestUser'
--将TestUser账号添加到数据库角色为数据库所有者
execute sp_addrolemember 'db_owner','TestUser'

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

但如果访问的数据库不是Test则为提示没有权限
USE master
GO
--将所有数据库的查看权限给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数据库了
参考:
使SQL用户只能看到自己拥有权限的库
MSDN VIEW ANY DATABASE 权限 
MSDN ALTER AUTHORIZATION (Transact-SQL) 
MSDN sp_addlogin (Transact-SQL)
来自为知笔记(Wiz)

标签: Sql Server, SQL Server 权限

转载于:https://www.cnblogs.com/gered/p/10254560.html

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

  1. SQL Server 2008等登录用户只能看到自己的数据库设置办法

    默认情况下登录用户除了看到自己拥有管理权限的数据库外.还可以看到其他数据库,在点击打开时会提示没有权限.如下设置可使该用户只能看到自己拥有管理权限的数据库,而看不到其他没有权限的数据库. (1)取消默 ...

  2. linux中的用户、群组和权限

    linux中的用户.群组和权限  linux中的用户.群组和权限 新建用户natasha,uid为1000,gid为555,备注信息为"master" groupadd -g 55 ...

  3. sql2008 新建登录用户只能修改某一个表 服务器角色,sql语句创建新登录名和设置权限...

    use DBName go --新增用户 exec sp_addlogin '用户名','密码','默认数据库名' --添加登录 exec sp_grantdbaccess N'test' --使其成 ...

  4. php 一天只能点赞上一次,ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次-Go语言中文社区...

    笔者最近帮许多人做毕设项目,什么基于SSH的招聘系统.SSM的商城系统,基于TP的博客系统...,忙得一批.其中TP项目中有一个实现浏览量和点赞量的功能需求.所谓怎么简单怎么来,在这里说一下思路,记录 ...

  5. linux用户和群组的作用,linux中的用户、群组和权限

    新建用户natasha,uid为1000,gid为555,备注信息为"master" groupadd -g 555 natasha useradd -u 1000 -g 555  ...

  6. SQL Server中授予用户查看对象定义的权限

      在SQL Server中,有时候需要给一些登录名(用户)授予查看所有或部分对象(存储过程.函数.视图.表)的定义权限存.如果是部分存储过程.函数.视图授予查看定义的权限,那么就像下面脚本所示,比较 ...

  7. django官方文档——django中的用户认证

    Django 中的用户认证¶ Django 自带一个用户认证系统,这个系统处理用户帐户.组.权限和基于 cookie 的会话.本文说明这个系统是如何工作的. 概览¶ 认证系统由以下部分组成: 用户 权 ...

  8. 使用SQL语句获取SQL Server数据库登录用户权限

    返回一个报表,报表中包含当前数据库中某对象的用户权限或语句权限的信息. 语法 sp_helprotect [ [ @name = ] 'object_statement' ] [ , [ @usern ...

  9. SQLServer中服务器角色和数据库角色权限详解角色

    当几个用户需要在某个特定的数据库中执行类似的动作时(这里没有相应的Windows用户组),就可以向该数据库中添加一个角色(role).数据库角色指定了可以访问相同数据库对象的一组数据库用户. 数据库角 ...

最新文章

  1. 图片在容器里垂直居中
  2. 30分钟入门Java8之默认方法和静态接口方法
  3. buu-crypto-yxx
  4. C语言基础-第一个C程序
  5. 分类算法中的ROC与PR指标
  6. vue2.0 $router和$route的区别
  7. mysql往前一天同一时间_Mysql时间轴数据 获取同一天数据的前三条
  8. Silverlight:CreateFromXAMLDownloader
  9. Python 第五章 因子分析
  10. 什么是数据标准管理系统
  11. [转载]jQuery操作Table学习总结
  12. cetos7 网卡名字命名规则_Linux 中如何启用和禁用网卡?
  13. 对数换底公式及推导证明
  14. 微信扫码下载APP,苹果,安卓多码合一,微信下载pdf报告,文件解决方案
  15. 海康威视查询序列号 紫盘
  16. 复合梯形法求积分c语言,复合梯形公式求积分
  17. select下拉框选择触发事件
  18. 羽毛球比赛中羽毛球擦网和卡网(挂网)怎么判罚?
  19. 史上最全最新前端面试题(不定期更新,有问题欢迎评论区对线)
  20. HDU1234 开门人和关门人

热门文章

  1. m5310模组数据上传至onenet_硬核干货!基于M5310-A的NB-IoT水表通信模块软件业务逻辑分享...
  2. centos 卸载软件_Linux系统配置及服务管理_第09章_软件管理
  3. python绘制蝴蝶曲线_如何编程实现蝴蝶函数曲线
  4. 在C语言的函数后标注small,大佬在吗,我用C写了一个去多重括号的函数,结果。。。...
  5. springboot-mail
  6. pythontk多线程_tkinter是否线程安全(threadsafe)?
  7. mysql消除重复行的关键字_MySQL 消除重复行的一些方法
  8. java交换integer_Java比较和交换语义和性能
  9. c++ 输出二进制_【位运算与状态压缩】二进制的魅力
  10. postman调用webservice接口_【分享】关于接口对前后端和测试的意义