Resource 数据库库的问题

lida4587 2013-10-12 01:20:28
我在数据库上新建了一个登陆账户,但在SSMS中连接数据库实例时,却报:拒绝对对象'configurations'(数据库msqlsystemresource',架构'sys')的select权限没有,我已经执行下面的语句了、
GRANT SELECT ON sys.configurations TO public;
GO

但还是存在这个问题,新建查询窗口,然后在窗口内连接数据库实例,是可以的。但直接连就不行,当然给这个登陆账户sysadmin服务器角色可以正常连接了,但我需要的是普通登陆账户也可以通过SSMS连接,左侧可以看到数据库资源管理器的各个对象
网上查了查,说是SQL目录树没有权限查看或者什么配置文件类,但都没说怎么解决

大家帮帮忙,看怎么解决呢

谢谢
...全文
233 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2013-10-14
  • 打赏
  • 举报
回复
引用 14 楼 lida4587 的回复:
试过了,不行啊
建议LZ把那个问题帐号删了再重建一次试试呢?
lida4587 2013-10-14
  • 打赏
  • 举报
回复
试过了,不行啊
lida4587 2013-10-14
  • 打赏
  • 举报
回复
谢谢,我试试
  • 打赏
  • 举报
回复
你需要按照你自己的要求,来修改一下代码就可以了:



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

if exists(select * from sys.server_principals 
          where name ='你的登录名')
   drop login 你的登录名
go

create login 你的登录名   
with password = '你的登录名',  
     default_database = [master],  
     check_expiration = off,  
     check_policy = off
go


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

if exists(select * from sys.database_principals
          where name = '数据库用户名一般同登录名')
   drop user 数据库用户名一般同登录名
go
 
     
create user 数据库用户名一般同登录名 for login 你的登录名


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

*/
grant view definition on database::你希望登录名能查看定义的数据库 to 数据库用户名


/*
5.需要特别注意的是,上面的权限只能是让你看看定义,
  你说,我能:select * from 某个表
  
  由于没有:
  grant select on 某个表 to ggg
  
  所以会报没有权限的
*/
  • 打赏
  • 举报
回复
引用 楼主 lida4587 的回复:
我在数据库上新建了一个登陆账户,但在SSMS中连接数据库实例时,却报:拒绝对对象'configurations'(数据库msqlsystemresource',架构'sys')的select权限没有,我已经执行下面的语句了、 GRANT SELECT ON sys.configurations TO public; GO 但还是存在这个问题,新建查询窗口,然后在窗口内连接数据库实例,是可以的。但直接连就不行,当然给这个登陆账户sysadmin服务器角色可以正常连接了,但我需要的是普通登陆账户也可以通过SSMS连接,左侧可以看到数据库资源管理器的各个对象 网上查了查,说是SQL目录树没有权限查看或者什么配置文件类,但都没说怎么解决 大家帮帮忙,看怎么解决呢 谢谢
看看这个:

--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


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

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


/*
5.需要特别注意的是,上面的权限只能是让你看看定义,
  你说,我能:select * from 某个表
  
  由于没有:
  grant select on 某个表 to ggg
  
  所以会报没有权限的
*/
發糞塗牆 2013-10-12
  • 打赏
  • 举报
回复
那不传了,一般的错误界面都有文本格式的啊
lida4587 2013-10-12
  • 打赏
  • 举报
回复
大小才几十K,jpg 格式应该没问题吧
發糞塗牆 2013-10-12
  • 打赏
  • 举报
回复
最大2M,还有文件格式的要求,还有就是破网络的问题
lida4587 2013-10-12
  • 打赏
  • 举报
回复
看到了,也上传上去了,就是点提交时,就不动了
發糞塗牆 2013-10-12
  • 打赏
  • 举报
回复
lida4587 2013-10-12
  • 打赏
  • 举报
回复
截图我怎么提交不上来
唐诗三百首 2013-10-12
  • 打赏
  • 举报
回复
普通账户只有有public角色,就可以登录并访问sys.configurations的. 错误画面截图来看看?
發糞塗牆 2013-10-12
  • 打赏
  • 举报
回复
我记得直接给一个用户pulice就可以看到左边的目录的的
lida4587 2013-10-12
  • 打赏
  • 举报
回复
我知道是无法访问的,但现在报错就是这个库里的configratiions表或视图没有select权限,所以普通账户不能用ssms直接登录,也就是打不开ssms中的资源管理器,单个查询窗口是可以登录的,这个问题怎么解决啊
唐诗三百首 2013-10-12
  • 打赏
  • 举报
回复
Resource数据库是一个特殊的数据库,无法直接访问的. 参考 http://msdn.microsoft.com/zh-cn/library/ms190940(v=sql.105).aspx

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧