【MSSQL】SQL Server 设置用户只能查看并访问特定数据库

时间:2022-09-09 17:49:08

#背景

  SQL Server实例上有多个服务商的数据库,每个数据库要由各自的服务商进行维护,

  为了限定不同服务商商的维护人员只能访问自己的数据库,且不能看到其他服务商的数据库,现需要给各个服务商商限定权限,让他们登录SQL Server只能看到授权的数据库而无法看到其他数据库。

解决方案

1、先给不同的服务商创建不同的登录名(如下以一个服务商为例)

【MSSQL】SQL Server 设置用户只能查看并访问特定数据库

2.将登录名加入到public服务器角色中

【MSSQL】SQL Server 设置用户只能查看并访问特定数据库

3.将public服务器角色的属性——>安全对象中取消查看所有数据库的权限

【MSSQL】SQL Server 设置用户只能查看并访问特定数据库

或者执行如下SQL:

REVOKE VIEW ANY DATABASE TO [public]

4.将待授权的数据库的dbowner指派给该用户

  执行sql

USE ZYLTEST
go
EXEC dbo.sp_changedbowner N'zyl'

  效果图

【MSSQL】SQL Server 设置用户只能查看并访问特定数据库

  注意:此处的设置不能手动取消,会有错误提示:

【MSSQL】SQL Server 设置用户只能查看并访问特定数据库

  解决办法,执行sql修改该数据库的所有者

USE ZYLTEST
go
EXEC dbo.sp_changedbowner N'sa'

  效果图

【MSSQL】SQL Server 设置用户只能查看并访问特定数据库

5、此时用登录名'zyl'登录sql server,便只能看到指定的数据库了

【MSSQL】SQL Server 设置用户只能查看并访问特定数据库

#TIPS

  上述方案实现的是-“设置登录用户只能看到和操作特定数据库”,如果你只想实现-“设置登录用户只能操作特定数据库,但能看到所有数据库,只是有的数据库不能操作” 

  需要对上述方案稍作修改,具体步骤:

  1、取消上述方案的第三步;

  2、将上述方案的第四步修改为如下操作:

【MSSQL】SQL Server 设置用户只能查看并访问特定数据库

  3、效果图

【MSSQL】SQL Server 设置用户只能查看并访问特定数据库

  可以看到所有的数据库,但是无法查看未授权的数据内容,如图提示

【MSSQL】SQL Server 设置用户只能查看并访问特定数据库


作者: willingtolove
本文链接: SQL Server 设置用户只能查看并访问特定数据库
欢迎经常来转转,转载请注明出处!

【MSSQL】SQL Server 设置用户只能查看并访问特定数据库的更多相关文章

  1. Sql Server设置用户只能查看并访问特定数据库

    现需要限定特定的用户只能查看并访问特定的数据库,防止多个用户对数据库操作时一些误操作. 参考i6first的如何让用户只能访问特定的数据库(MSSQL)博文 1.新建登录用户 以管理员身份登陆数据库( ...

  2. SQL SERVER 设置自动备份和删除旧的数据库文件

    打开SQL SERVER MANAGEMENT STUDIO,启动SQL SERVER代理服务(注意在“控制面板-管理工具-服务”中设置SQL SERVER AGENT的启动类型为自动).启动后点击“ ...

  3. mssql 用户只能查看授权的数据库

    问题背景:公司的一台数据库服务器上放在多个数据库,每个数据库都使用不同的登录名称,但在将项目文件发布到Ftp时,有些Ftp的信息是在客户那边的 一旦客户那边使用配置文件中的数据库信息连接到数据库他就能 ...

  4. Sql Server 孤立用户解决办法

    Sql Server 孤立用户 是我们经常遇到的事情,今天详细的梳理了下,希望能帮到你 当把用户数据库从一台 Sql Server 使用备份和恢复的方式迁移到另一台服务器.数据库恢复以后,原先用户定义 ...

  5. 由于检索用户的本地应用程序数据路径时出错,导致无法生成 SQL Server 的用户实例

    /”应用程序中的服务器错误. 由于检索用户的本地应用程序数据路径时出错,导致无法生成 SQL Server 的用户实例.请确保该用户在此计算机上有本地用户配置文件.该连接将关闭. 堆栈跟踪: [Sql ...

  6. 05Microsoft SQL Server 表创建,查看,修改及删除

    Microsoft SQL Server 表创建,查看,修改及删除 创建表 创建普通表 use 数据库名称 go create table 表名称( 列1 ) not null, 列2 ) not n ...

  7. php连接微软MSSQL(sql server)完全攻略

    http://www.jb51.net/article/98364.htm php连接微软MSSQL(sql server)完全攻略 作者:吵吵 字体:[增加 减小] 类型:转载 时间:2016-11 ...

  8. Atitit.数据库新特性战略规划 mssql sql server 2008 SQL2012 SQL2014

    Atitit.数据库新特性 mssql sql server 2008 SQL2012 SQL2014 1. Sql2012 新特性 1 1.1. 增加了Sequence对象. 1 1.2. 新的分页 ...

  9. SQL SERVER普通用户需要什么权限才能执行sp_configure命令

    SQL SERVER普通用户需要什么权限才能执行sp_configure命令呢? 例如如下存储过程所示 CREATE PROCEDURE PRC_TEST AS BEGIN    exec sp_co ...

随机推荐

  1. jquery遍历table获取td单元格的值

    $("#grd").find("tr").each(function () { //第二列单元格的值eq(索引) alert($(this).children( ...

  2. sublime text3 前端编译神器,浏览器实时显示

    前端编译器有很多,Dreamweaver,sublime text ,webstorm,但在使用之后感觉sublime text3就是前端的编译神器 首先sublime text3最好使用英文原版,虽 ...

  3. 二十四、Struts2中的UI标签

    二十四.Struts2中的UI标签 Struts2中UI标签的优势: 数据回显 页面布局和排版(Freemark),struts2提供了一些常用的排版(主题:xhtml默认 simple ajax) ...

  4. 基于百度地图js进行地理定位

    http://www.mengxiangchaoren.com/jquery.select.position.min.js 使用方法 $("#myCity").renderSele ...

  5. Linux makefile教程之概述一[转]

    概述—— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些 Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makef ...

  6. 慕课python3.5学习笔记

    本文章中有部分代码为python2 慕课python入门 慕课python进阶 布尔值 布尔值可以用and.or和not运算. and运算是与运算,只有所有都为 True,and运算结果才是 True ...

  7. DotNet程序汉化过程--SnippetCompiler简单解说

    SnippetCompiler介绍 平时要验证一段C#代码或者写一个算法,就得打开庞大的VS新建一个解决方案,占用了硬盘空间不说还费时费力.SnippetCompiler这个工具就可以在这里帮到我们了 ...

  8. jQuery获取当前对象标签名称

    获取当前对象标签名称 $(".classname")[0].tagName;

  9. 新概念英语(1-37)Making a bookcase

    What is Susan's favourite color ? A:You're working hard, Georage. What are you doing? B:I am making ...

  10. 数据结构 栈&队列

    2-4 依次在初始为空的队列中插入元素a,b,c,d以后,紧接着做了两次删除操作,此时的队头元素是( ) 删除,移动头指针: 增加,移动尾指针: 删除a,b ,队头c 2-3 在一个链队列中,fron ...