在SQL Server Agent中应用凭据

在SQL Server Agent中应用凭据

ID:42606374

大小:330.50 KB

页数:9页

时间:2019-09-18

在SQL Server Agent中应用凭据_第1页
在SQL Server Agent中应用凭据_第2页
在SQL Server Agent中应用凭据_第3页
在SQL Server Agent中应用凭据_第4页
在SQL Server Agent中应用凭据_第5页
资源描述:

《在SQL Server Agent中应用凭据》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在SQLServerAgent中应用凭据SqlserverAgent是一种windows服务,用于执行各种管理任务。这些任务可能会涉及到一些对windows资源的访问(例如创建/删除文件等)。但是SQLServer中用户权限只在SQLServer范围内有效,无法扩展到SQLServer以外,这就意味着当执行job的安全上下文缺少相应权限时,job会失败。所以我们需要寻找另外一种方法来解决这个问题:凭据。首先看一下凭据的定义:凭据是包含连接到SQLServer外部资源所需的身份验证信息(凭据)的记录。此信息由SQLServer在内部使用。大多凭据都包含一个Windows用户名和密

2、码。利用凭据中存储的信息,通过SQLServer身份验证方式连接到SQLServer的用户可以访问服务器实例外部的资源。如果外部资源为Windows,则此用户将作为在凭据中指定的Windows用户通过身份验证。单个凭据可映射到多个SQLServer登录名。但是,一个SQLServer登录名只能映射到一个凭据。 可以看出,凭据可以很好地解决这一问题。需要注意的是,SQLServerAgent并不直接使用凭据,而是将其封装在代理(proxy)中使用. 下面我用一个示例来演示如何使用凭据:Login1是sqlserver中的一个登录用户,他的任务是定期清除文件夹d:backup中的

3、文件。Sqlserveragent可以很好的帮助Login1完成此任务步骤如下1.创建凭据,将相关的windows用户(该用户需要有更改文件夹d:backup的权限)绑定到凭据中2.创建代理,与凭据联系起来。3.指定代理应用的agent子系统4.授权login1使用代理.5.授予login1创建job的权限。6.使用login1创建job首先以管理员的身份登陆SQLSERVER创建凭据:点击OjbectExplorer->sqlserver实例->Security->Credentials在弹出窗口内填写凭据名称,相关的windows用户(该用户需要有更改文件夹d:back

4、up的权限)及密码接下来创建代理点击SQLServerAgent->Proxies->NewProxy在弹出窗口的General栏内填写代理名称,相应的凭据及其对应的子系统填写完毕后点击Principals栏,指定有权调用该代理的登陆帐户现在的login1已经可以调用新建的proxy1了,但是仍然无法创建job。如果以login1登陆MSSM,你会发现sqlserveragent处于隐藏状态。进入msdb数据库,在其中为login1创建匹配的用户,然后将其加入SQLAgentOperatorRole角色。点击ObjectExplorer->sqlserver实例->Databa

5、ses->msdb->Security->Users->NewUser在弹出窗口内填写用户名称,login名称及角色. 现在使用login1登陆,创建job.点击ObjectExplorer->sqlserver实例->SQLServerAgent->Jobs>NewJob.在弹出窗口的General中填写job名称点击Steps栏,编写删除文件的脚步。我们需要在Runas中指定我们需要的代理(凭据)这样,我们的job就大致完成了,在job运行到step1步骤时,SQLServerAgent会以stswordman-pctestuser1的安全上下文执行删除操作。下面是相关的

6、sql脚本。 Use msdbGo--create credentialif exists(select 1 from sys.credentials where name='cred1')    drop credential cred1Create credential cred1 with identity='stswordman-pctestuser1',secret='123123_a'go--remove exist jobif exists(select 1 from sysjobs where name='removeFile')    exec msdb.d

7、bo.sp_delete_job @job_name ='removeFile'go--remove exist proxycreate table #tmp_sp_help_proxy(proxy_id int null, name nvarchar(128) null, credential_identity nvarchar(128) null, enabled tinyint null, description nvarchar(1024) null, user_sid varbin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。