【问题标题】:SQL Server Job - RunAs for T-SQLSQL Server 作业 - 用于 T-SQL 的 RunAs
【发布时间】:2021-05-08 06:35:19
【问题描述】:

当我选择 T-SQL 作为我的工作步骤时,我正在尝试创建使用户凭据出现在 RunAs 中。但是,用户帐户没有出现。

按照此处的步骤,我设法创建了 RunAs,但是当我选择 T-SQL 时,它没有显示出来。

为我们的 Windows 服务帐户创建凭据 https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-credential?view=sql-server-ver15

在步骤级别分配作业运行方式。 https://docs.microsoft.com/en-us/sql/ssms/agent/configure-a-user-to-create-and-manage-sql-server-agent-jobs?view=sql-server-ver15

在子系统中找不到任何 T-SQL https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-grant-proxy-to-subsystem-transact-sql?view=sql-server-ver15

关于如何让 RunAs 出现在 T-SQL 中的任何想法?在代理下,如何添加新的子系统?

谢谢。

【问题讨论】:

    标签: sql-server tsql ssis ssms


    【解决方案1】:

    我不相信您可以将子系统添加到代理列表中。

    SQL 代理在很长一段时间内都没有真正喜欢过,所以当您第一次使用默认 T-SQL 命令类型创建步骤时,运行方式显示为下拉选项,如果您循环到其他内容然后返回T-SQL 你会看到 Run As 不再是一个选项(它是灰色的)。

    这意味着 T-SQL 将作为运行代理服务的服务帐户执行...

    ...除非你impersonate another user!

    【讨论】:

    • 经过大量测试,我发现在SQL Server作业中使用CMD提示调用SQL脚本更容易,我可以在其中分配RunAs。检查sqlcmd
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多