You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在非域环境下创建凭据以运行SQL Server代理作业

未加入域的EC2 SQL Server:代理凭据创建与配置指南

嘿,我来一步步帮你搞定未加入域的EC2上SQL Server代理凭据的创建和配置——这种非域环境确实和域内配置有点不一样,得抓准几个关键点:

一、先搞懂:为什么需要凭据?

简单来说,SQL Server代理要执行备份、跑SSIS、发DB Mail这些活儿,光靠数据库层面的SQL用户权限不够,很多操作得用到操作系统级的权限(比如读写EC2上的磁盘文件、访问SSIS包资源)。这时候就得靠凭据来把一个有足够权限的本地操作系统账户(或者AWS IAM角色)和SQL代理绑定起来,让作业能以这个账户的身份去干活。

二、创建凭据的两种方式(SSMS图形化/TSQL)

方式1:SSMS图形化操作(新手友好)

  • 打开SSMS,连接到你的SQL Server实例
  • 展开左侧的 安全性 节点,右键点击 凭据 → 「新建凭据」
  • 在弹出的配置窗口里填这些信息:
    • 凭据名称:取个好记的,比如EC2_SQL_Job_Credential
    • 标识:这里必须填EC2实例上的本地操作系统账户(因为没加入域,不能用域账户)。推荐你专门创建一个本地用户(比如SQLJobRunner),给它分配必要的权限;格式是你的EC2机器名\用户名,比如你的EC2机器叫EC2-SQL-01,那就是EC2-SQL-01\SQLJobRunner
    • 密码:填这个本地用户的登录密码
    • 勾选「此凭据用于映射到SQL Server以外的凭据」(因为我们绑定的是操作系统账户)
  • 点击「确定」就创建好了

方式2:TSQL脚本创建(高效批量操作)

如果你习惯用脚本,执行下面的语句(记得替换占位符):

CREATE CREDENTIAL [EC2_SQL_Job_Credential]
WITH IDENTITY = N'EC2-SQL-01\SQLJobRunner', -- 替换为你的EC2本地用户名
SECRET = N'YourLocalUserPassword' -- 替换为本地用户的密码
GO

三、把凭据关联到SQL Server代理账户

凭据创建好后,得把它绑定到代理账户,这样作业才能调用它:

  • 展开左侧的 SQL Server代理 → 代理 → 右键点击「新建代理」
  • 在新建代理窗口里配置:
    • 名称:比如SSIS_Backup_Mail_Agent
    • 凭据名称:选择刚才创建的EC2_SQL_Job_Credential
    • 描述:写清楚用途,比如「用于执行SSIS脚本、数据库备份、DB Mail的代理账户」
    • 切换到 子系统 选项卡,勾选你需要用到的子系统:
      • 跑SSIS包选「SSIS包执行」
      • 数据库备份、DB Mail选「Transact-SQL脚本」(如果要执行系统命令就选「操作系统(CmdExec)」)
    • 切换到 主体 选项卡,添加你之前创建的具备数据库读写权限的SQL Server用户,给这个用户分配使用该代理的权限
  • 点击「确定」完成绑定

四、针对你的EC2非域场景的关键注意事项

这里有几个坑一定要避开:

  • 本地账户权限要给足:你用来绑定凭据的EC2本地用户,必须有这些权限:
    • 对SQL Server备份目标路径的读写权限(比如EC2挂载的EBS盘D:\SQLBackup)
    • 如果跑SSIS包,需要有SSIS目录的访问权限,以及包涉及的所有资源(比如文件、外部数据库)的权限
    • DB Mail的话,确保这个用户能触发SQL Server的DB Mail存储过程(一般只要SQL用户有权限调用,代理用的凭据就能正常执行)
  • 别用内置系统账户:比如NT AUTHORITY\SYSTEM虽然权限高,但安全性差,而且在非域环境下访问外部资源容易出问题,建议用专门创建的本地用户
  • 一定要测试:创建一个简单的测试作业,比如备份一个小数据库,或者发送一封测试邮件,指定用刚才创建的代理账户执行。如果失败,去「SQL Server代理→日志→错误日志」里找具体原因,一般都是权限问题

五、额外选项:用AWS IAM角色(适合访问AWS资源)

如果你需要让SQL作业访问AWS资源(比如把备份传到S3),可以不用本地用户,而是用EC2实例的IAM角色:

  • 给EC2实例附加具备对应权限的IAM角色(比如S3读写权限)
  • 创建凭据时,「标识」填IAM角色的ARN(比如arn:aws:iam::123456789012:role/SQLJobRole),「密码」留空
  • 后续代理绑定和测试步骤和上面一样

内容的提问来源于stack exchange,提问作者Mike de H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:31:44