问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么我下载的sq品质的歌添加到歌单后再打开qq音乐 歌单里的sq品质就没了呢 绿钻没过期

发布网友 发布时间:2022-04-09 04:54

我来回答

3个回答

懂视网 时间:2022-04-09 09:15

[master] GO DENY VIEW ANY DATABASE TO [登录名或服务器角色] GO use [master] GO REVOKE VIEW ANY DATABASE TO [登录名或服务器角色] GO View Code

在后面两种情况下,我们添加了SQLAgentReaderRole角色,却看不了作业信息。真的看不了吗?
不用急,我们先看下在GUI界面点击展开作业所调用的语句:
技术分享
跟踪脚本发现它从msdb.dbo.sysjobs_view视图获取作业信息。
msdb.dbo.sysjobs_view视图定义如下:

技术分享
CREATE VIEW sysjobs_view
AS
SELECT jobs.job_id,
 svr.originating_server,
 jobs.name,
 jobs.enabled,
 jobs.description,
 jobs.start_step_id,
 jobs.category_id,
 jobs.owner_sid,
 jobs.notify_level_eventlog,
 jobs.notify_level_email,
 jobs.notify_level_netsend,
 jobs.notify_level_page,
 jobs.notify_email_operator_id,
 jobs.notify_netsend_operator_id,
 jobs.notify_page_operator_id,
 jobs.delete_level,
 jobs.date_created,
 jobs.date_modified,
 jobs.version_number,
 jobs.originating_server_id,
 svr.master_server
FROM msdb.dbo.sysjobs as jobs
 JOIN msdb.dbo.sysoriginatingservers_view as svr
 ON jobs.originating_server_id = svr.originating_server_id
 --LEFT JOIN msdb.dbo.sysjobservers js ON jobs.job_id = js.job_id
WHERE (owner_sid = SUSER_SID())
 OR (ISNULL(IS_SRVROLEMEMBER(N‘sysadmin‘), 0) = 1)
 OR (ISNULL(IS_MEMBER(N‘SQLAgentReaderRole‘), 0) = 1)
 OR ( (ISNULL(IS_MEMBER(N‘TargetServersRole‘), 0) = 1) AND
 (EXISTS(SELECT * FROM msdb.dbo.sysjobservers js 
  WHERE js.server_id <> 0 AND js.job_id = jobs.job_id))) -- filter out local jobs
View Code

注意WHERE条件:当用户是sysadmin或SQLAgentReaderRole或TargetServersRole角色成员时条件永远成立,返回所有作业;否则仅返回所有者是当前用户的作业。
检查角色默认授予了哪些权限:

技术分享
granteename objectname columnname class_desc permission_name state_desc
SQLAgentOperatorRole sp_enum_login_for_proxy NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentOperatorRole sp_help_alert NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentOperatorRole sp_help_notification NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentOperatorRole sp_help_targetserver NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentOperatorRole sp_purge_jobhistory NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentOperatorRole sysalerts NULL OBJECT_OR_COLUMN SELECT GRANT
SQLAgentOperatorRole sysnotifications NULL OBJECT_OR_COLUMN SELECT GRANT
SQLAgentOperatorRole sysoperators NULL OBJECT_OR_COLUMN SELECT GRANT
SQLAgentUserRole sp_add_job NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_add_jobschedule NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_add_jobserver NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_add_jobstep NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_add_schedule NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_addtask NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_attach_schedule NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_check_for_owned_jobs NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_check_for_owned_jobsteps NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_delete_job NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_delete_jobschedule NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_delete_jobserver NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_delete_jobstep NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_delete_jobsteplog NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_delete_schedule NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_detach_schedule NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_droptask NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_enum_sqlagent_subsystems NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_get_job_alerts NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_get_jobstep_db_username NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_get_sqlagent_properties NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_category NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_job NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_jobactivity NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_jobcount NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_jobhistory NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_jobhistory_full NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_jobhistory_sem NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_jobhistory_summary NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_jobs_in_schedule NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_jobschedule NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_jobserver NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_jobstep NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_jobsteplog NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_operator NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_proxy NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_help_schedule NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_maintplan_subplans_by_job NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_notify_operator NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_start_job NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_stop_job NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_uniquetaskname NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_update_job NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_update_jobschedule NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_update_jobstep NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole sp_update_schedule NULL OBJECT_OR_COLUMN EXECUTE GRANT
SQLAgentUserRole syscategories NULL OBJECT_OR_COLUMN SELECT GRANT
SQLAgentUserRole sysjobs_view NULL OBJECT_OR_COLUMN SELECT GRANT
SQLAgentUserRole sysschedules_localserver_view NULL OBJECT_OR_COLUMN SELECT GRANT
View Code

权限分配来看,SQLAgentUserRole分配了基础权限(视图、存储过程中有对角色的判定限制操作);SQLAgentReaderRole没有额外权限;SQLAgentOperatorRole额外有警报、通告、操作员权限。
SQLAgentReaderRole、SQLAgentOperatorRole是SQLAgentUserRole的角色成员,SQLAgentOperatorRole是SQLAgentReaderRole的角色成员。
SQLAgentReaderRole对视图msdb.dbo.sysjobs_view有SELECT权限(继承SQLAgentUserRole的权限),GUI界面操作时从视图获取数据。所以添加到此角色后,展开作业就能返回所有作业。
我们用语句查询作业时,习惯直接从msdb.dbo.sysjobs这类表入手。但SQLAgentUserRole角色并没有对此类表有SELECT权限,因此常规语句会报拒绝对对象的SELECT权限。
出现问题的根源是,自己没有深入了解本质,自己以为SQLAgentUserRole角色直接在表上有权限,未曾深入查看它的权限集中在对存储过程的执行和视图的查询。
很多时候我们使用习以为常且单方面是正确的方式操作,最终却没得到预期的结果,这时我们就要检查操作的是否是同一对象。

添加到SQLAgentReaderRole角色后报拒绝SELECT权限

标签:

热心网友 时间:2022-04-09 06:23

估计你是清楚缓存了吧

热心网友 时间:2022-04-09 07:41

我也想问啊
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
“苏大强”的本意是什么?抹黑江苏吗? 伦敦奥运会入场式各个国家和地区的先后顺序 参加奥运会入场式的前后顺序 神马是费用性斜视?没听说过,斜视不就是斗鸡眼么 小儿斜视原因 为了不出现重影,右眼会被推到外斜视眼位,称为“废用性斜视” 在八岁时玩鞭炮炸伤左眼,而形成左眼斜视,现在能治好吗 ...后左眼斜视外斜 左眼下半部有光感 视觉模糊 请问左手术的话 能恢复... 两眼视力差距大会怎么样 关于耳洞的小问题~有经验的和懂行的进~ 怎样把两个关联在一起- 问一问 为什么华为手机屏幕长不显示区城了上不显示那个地区了? 华为手机开机后出现选择语言地区啥意思? 红糖年糕怎么做 红糖年糕怎么做? 红糖炒年糕的做法,芝麻红糖炒年糕怎么做好 红糖炒年糕的做法步骤 帮我找个男生QQ头像和昵称,不要带字的,不要非主流,不要唯美的, 男生头像+网名+个性签名,发点来 仿古彩钢琉璃瓦价格举例 造型怎么做? 怎么让三相四线电表倒转 求琉璃瓦CAD建筑大样图~~可以给我吗?急需~~ 求一份屋檐琉璃瓦做法的大样图,快的加分。 装中央空调可以在梁上打孔吗 故宫中的琉璃瓦是用什么制作的,为什么连飞鸟都站不住? 中央空调安装需要在梁上开洞,应采取什么措施? 安装空调在这个梁上打孔行吗? 琉璃瓦是什么时候出现的?北魏时期的琉璃瓦有什么特色? 空调安装,承重梁打孔有什么要求? 中央空调在梁上打孔安全吗? 两个能合并吗并且两个人都可以用? 两个怎么合并成一个,两个里面都有钱,怎么能把另一个号的钱转出来,另_百度问一问 两个好友,能否合并到一个号 两个好友,能否合并到一个号 如何把两个公众账号合并成为一个? 两个用不同手机号申请的怎样可以将其合并成一个呢? 德国消石素哪里有卖 两个可以合并吗 我有两个,怎么合并成一个啊? 微信分身怎么合并一起(去掉一个) 请问哪里才能买到真的德国强力消石素? 德国强力消石素 石家庄哪里有卖 如何把iphone7设置assistive touch iphone7assistivetouch锁屏怎么开启? 为什么我的苹果7plus没有assistivetouch 苹果7怎么没有AssistiveTouch 爷爷是户主可以帮孙子激活工商银行社保卡吗? 工商银行说未成年人社保卡不予激活怎么办? 直播的头像算不算商用 快手直播伴侣怎么更换头像