积极答复者
没有管理员权限,也不能修改数据,即不能处理业务内容,但是要能监控数据库(如能访问sys.对象 sys.DM_对象 ) 只能单独授权吗?

问题
答案
全部回复
-
可以,将这些dmv封装在存储过程里,使用存储过程的execute as
然后授权用户执行即可。
如果涉及到instance level的权限,使用stored procedure sign
http://www.cnblogs.com/stswordman/archive/2008/07/29/1255322.html
- 已编辑 liwei-MSFTModerator 2014年12月15日 11:07
-
采用权限控制方法.
解决方法:
打开新建用户登录名框
1: 服务器新建一个登录名Monitor. 设置密码, 服务器角色设置public
2: 在用户映射选项卡,千万记住不能映射用户, 这样的话,该用户不能访问业务数据库.
3: 使用该用户登录名登陆sql 查询
SELECT * FROM sys.sysprocesses
ok!
我再次试了一次。
SELECT * FROM sys.sysprocesses 是可以执行的
但是
SELECT database_id from SYS.DM_DB_INDEX_USAGE_STATS WHERE database_id=DB_ID(“dbName”)
无法执行。
然后发现
GRANT VIEW SERVER STATE TO [youUserName]
这样可以免强的解决用户可以查看服务器状。
然后给出用户对业务数据库的只读权限。
再对相关业务表给出拒绝读取权限。
暂时先这样了。
谢谢各位。