关闭

设置登录账号只有查看Microsoft SQL Server Management Studio左边目录树的权限

标签: 数据库sql serverdatabasemicrosoft
6467人阅读 评论(0) 收藏 举报
分类:

 

如果你创建了一个登录账号,希望这个登陆账号通过Microsoft SQL Server Management Studio客户端工具登录到SQL Server时,只有查看左边目录树的权限,那么应该如何设置呢?

 

下面的代码,就可以实现这个功能:

 

1、建立数据库、登录账号、数据库用户,授予权限

--先建立2个数据库,用来做实验
create database wcc
go

create database ggg
go

 

--以下代码都是在sa账户下执行的


--1.建立登录名 ggg
use master
go

if exists(select * from sys.server_principals 
          where name ='ggg')
   drop login ggg
go

create login ggg   
with password = 'ggg',  
     default_database = [master],  
     check_expiration = off,  
     check_policy = off
go


/*
2.注意这里的ggg是登录名,授予服务器级别的查看定义权限
  这样,你用ggg登录后,可以看到左边的目录树,
  但是当你点击任意用户数据库,比如下面的 wcc数据库,
  就会报错!
*/
grant view any definition to ggg



/*
3.上面的登录名,那么如果你要查看某个数据库下面的目录树,
  那么必须要创建挂到这个登录名上的,数据库用户名,
  这里是数据库用户 ggg  
*/
use wcc
go

if exists(select * from sys.database_principals
          where name = 'ggg')
   drop user ggg
go
 
     
create user ggg for login ggg
go

--这里创建一个表,用来测试权限
if OBJECT_ID('test') is not null
   drop table test
go

create table test
(
	id int,
	v varchar(10)
)

insert into test(id,v)
select 1,'aa' union all
select 2,'bb' union all
select 3,'cc'


/*
4.这里的ggg是数据库用户,
  给这个数据库用户ggg,授予查看数据库wcc中的任何定义信息,
  这个时候,你可以点击wcc数据库左边的加号,展开目录树,
  你可以看到表,视图等等,点击表,你可以看到有很多表

*/
grant view definition on database::wcc to ggg

 


2、接下来,打开客户端工具,输入用户名:ggg 和密码:ggg,进行连接:

 

然后,我们点击左边的目录树,可以查看数据库wcc下面的所有信息:

 

但是如果你点击ggg数据库,由于没有在数据库ggg中建立对应的数据库用户ggg,所以在用登陆账号ggg登录到SQL Server后,会用当前数据库的guest数据库用户,作为登录名的数据库用户,而这个guest没有什么权限,所以导致报错:

 

如果我们尝试进行select查询,由于没有授予数据库用户select 权限,比如:

grant select on test to ggg


所以,下面的代码会报错:

use wcc
go


/*
5.需要特别注意的是,上面的权限只能是让你看看定义,
  你说,我能:select * from 某个表
  
  由于没有:
  grant select on 某个表 to ggg
  
  所以会报没有权限的
*/
select * from test



 

1
0
查看评论

SQL Server Management Studio使用sa登录不上解决方法

如果是在局域网使用,那么直接使用SqlServer的windows身份验证登录就可以了,如果是用在外网,那么就需要用到sql server验证的登录方法。但更改到外网用sql server验证的登录方式sa用户登录一直出现错误 18456.现得以解决,方法如下: 1.首先以windows身份验证登...
  • Wengwuhua
  • Wengwuhua
  • 2016-11-28 22:53
  • 785

如何查看存储过程的定义 (SQL Server Management Studio)

文章转自:爱符号 http://www.afuhao.com/article_articleId-190.shtml 许多系统存储过程、系统函数和目录视图都提供有关存储过程的信息。您可以使用这些系统存储过程来查看存储过程的定义:即,用于创建存储过程的 Transact-SQL 语句...
  • symbolspace
  • symbolspace
  • 2013-07-05 21:50
  • 762

Microsoft Sql Server Management studio与visual studio 建立连接数据库

打开Microsoft Sql Server Management studio 点击文件---连接对象资源管理器 找到数据库  表 开始设计表id name 两个字段 添加记录1 2 3 4 查询添加的记录 ...
  • judyge
  • judyge
  • 2015-11-01 10:34
  • 1670

如何通过Microsoft SQL Server Management Studio查看各表行记录数

在Microsoft SQL Server Management Studio 10 中,可以通过菜单 【查看】——【对象资源管理器详细信息】或按F7 调出对象资源管理器详细信息的窗口; 此窗口就如同文件管理器的操作方式一样,双击数据库名称,然后再双击数据表,就可以看到所有数据表的列表,在上方列名栏...
  • u013047459
  • u013047459
  • 2013-12-04 22:52
  • 2514

sql server management studio创建并应用视图

最近实习项目要用到sql server management studio,刚刚学习这个,菜鸟一枚,发现网上很多资料只讲高级应用,像怎么创建怎么使用软件这种白痴问题没有涉及,导致我们这些小菜鸟的学习过程困难重重,本篇博文旨在引导像我一样的初学者入门,高手请绕道。 1.首先我创建了三个table st...
  • qingtian12138
  • qingtian12138
  • 2017-04-20 16:39
  • 557

教程:SQL Server Management Studio

此工具由 Microsoft Visual Studio, Management Studio 内部承载,它提供了用于数据库管理的图形工具和功能丰富的开发环境。通过 Management Studio,您可以在同一个工具中访问和管理数据库引擎、Analysis Manager 和 SQL ...
  • xinqingwuji
  • xinqingwuji
  • 2016-05-11 18:18
  • 12811

Microsoft SQL Server Management Studio数据库不能附加与分离问题

1.首先提一下这个软件的安装,感觉很操蛋,跟office差不多,如果是第一次安装,那么就是傻瓜式的,如果不是第一次安装,就会存在卸载不干净的问题,这会直接导致安装失败,我这次安了整整一天,第一次双击快捷方式没等进去就报错,第二次进去之后不能创建数据库等操作,第三次狠心把所有相关的东西全部删除粉碎安装...
  • qq_32239767
  • qq_32239767
  • 2017-09-19 22:26
  • 222

SQL Server2008 Management Studio 设置查询、编辑所有行

Microsoft SQL Server Management Studio--工具--选项--SQL Server对象资源管理器--命令 把右侧的 “编辑前行”命令的值 和  “选择前行”命令的值  都改成 0  如图 修改前 编辑后 ...
  • StarRexStar
  • StarRexStar
  • 2012-09-05 12:36
  • 5390

windows(64位)下载以及安装SQL Server Management Studio

下载地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796 1.  把SQLServer2005_SSMSE...
  • tmosk
  • tmosk
  • 2016-10-19 20:36
  • 1341

清除SQL Server Management账号密码保存记录

SQL Server Management Studio 2008 delete the file   C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlSt...
  • juefeiyechen
  • juefeiyechen
  • 2015-08-12 09:42
  • 526
    个人资料
    • 访问:526301次
    • 积分:9035
    • 等级:
    • 排名:第2474名
    • 原创:362篇
    • 转载:14篇
    • 译文:1篇
    • 评论:137条
    博客专栏
    最新评论