Azure Elastic Job Agent 凭证错误:同库表刷新登录失败问题
问题解答
1. 凭证选择:job_credential vs refresh_credential
- 如果你是在同一数据库内用视图刷新表,不需要跨库或访问外部资源,应该用
job_credential。 refresh_credential是专为弹性作业中**跨数据库/服务器刷新外部表(如Azure Synapse外部表)**设计的,你的场景完全不需要用到它。
2. 解决"Login failed for user 'refresh_credential'"报错
你创建数据库范围凭证时犯了核心错误:IDENTITY参数必须指定目标数据库中已存在的有效登录名,而非自定义字符串(比如你写的'refresh_credential')。具体修正步骤:
- 先确认目标数据库中有可用的登录用户(比如你日常用来执行刷新操作的账号)。
- 重新创建凭证时,将
IDENTITY设为这个真实的登录名,SECRET设为该用户的密码:CREATE DATABASE SCOPED CREDENTIAL [你的凭证名] WITH IDENTITY = '真实的数据库登录名', SECRET = '该用户的密码'; - 结合你的场景,更推荐直接改用
job_credential配置弹性作业:-- 创建作业凭证(关联数据库登录) CREATE CREDENTIAL [job_credential_name] WITH IDENTITY = '真实登录名', SECRET = '密码'; -- 在作业步骤中引用该凭证 EXEC jobs.sp_add_jobstep @job_name = 'CreateTableTest', @command = '你的刷新表SQL语句', @credential_name = 'job_credential_name';
内容的提问来源于stack exchange,提问作者burcubelen
相关产品推荐
相关产品推荐

