设置登录账号只有查看Microsoft SQL Server Management Studio左边目录树的权限
2013-10-13 14:02
537 查看
如果你创建了一个登录账号,希望这个登陆账号通过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
相关文章推荐
- 设置登录账号只有查看Microsoft SQL Server Management Studio左边目录树的权限
- 设置Microsoft SQL Server Management Studio Express--使用SQL验证登录(如使用sa用户登录)
- Microsoft SQL Server Management Studio Express安装失败处理并设置sa登录x
- [转]Microsoft SQL Server Management Studio Express 使用SQL验证登录sa
- Microsoft SQL Server Management Studio Express 使用SQL验证登录sa
- 使用Microsoft SQL Server Management Studio连接远程阿里云SQL Server数据库
- sql2005 Microsoft SQL Server Management Studio Express的安装问题
- 如何确定SQL2005 Microsoft SQL Server Management Studio的版本
- Microsoft SQL Server Management Studio cannot find one or more components的问题
- 将Visual Studio的字体与颜色设置导入到SQL Server Management Studio
- Microsoft SQL Server Management Studio ------- 附加数据库 对于 服务器“xxx"失败(错误码5120)
- 关于sql server 2008 r2 展开时报错:参数名:viewInfo ( Microsoft SqlServer Management SqlStudio Explorer )解决思路
- Microsoft OneScript 团队发布的最新一版在 SQL Server Management Studio 中运行的脚本,可以帮助我们获取更详细的版本信息。
- Microsoft SQL Server Management Studio -- Restore database in a difference server
- Microsoft SQL Server Management Studio 导出触发器脚本
- (转) 值不能为空。参数名viewinfo(microsoft.sqlserver.management.sqlstudio.explorer)
- Microsoft SQL Server Management Studio Express
- Win7(64位)安装Microsoft SQL Server Management Studio Express[error 29506]
- Win7(64位)安装Microsoft SQL Server Management Studio Express[error 29506]
- SQL Server Management Studio (SSMS) 清除登录记录