凭据是包含连接到 SQL Server 外部资源所需的身份验证信息(凭据)的记录。 此信息由 SQL Server 在内部使用。 大多凭据都包含一个 Windows 用户名和密码。
利用凭据中存储的信息,通过 SQL Server 身份验证方式连接到 SQL Server 的用户可以访问服务器实例外部的资源。 如果外部资源为 Windows,则此用户将作为在凭据中指定的 Windows 用户通过身份验证。 单个凭据可映射到多个 SQL Server 登录名。 但是,一个 SQL Server 登录名只能映射到一个凭据。
系统凭据是自动创建的,并与特定端点关联, 系统凭据名以两个哈希符号 (##) 开头
(以上说明参考:凭据)
本次测试实例:普通sql账户利用作业创建系统文件夹
--创建 sql 账户,不授予任何权限
USE master
GO
CREATE LOGIN [kk] WITH PASSWORD=N'kk', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[简体中文], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
--创建凭据
USE master
GO
CREATE CREDENTIAL CredentialName
WITH
IDENTITY = 'HZC\admin', -- windows 登录账号
SECRET = 'admin' -- windows 登录密码
GO
SELECT * FROM sys.credentials
GO
创建代理,代理类型为“操作系统(CmdExec)”
脚本创建如下:
--创建代理,代理类型为“操作系统(CmdExec)”
USE [msdb]
GO
EXEC msdb.dbo.sp_add_proxy
@proxy_name=N'ProxyName',
@credential_name=N'CredentialName',
@enabled=1
GO
EXEC msdb.dbo.sp_grant_proxy_to_subsystem
@proxy_name=N'ProxyName',
@subsystem_id=3
GO
EXEC msdb.dbo.sp_grant_login_to_proxy
@proxy_name=N'ProxyName',
@login_name=N'kk'
GO
创建作业,所有者选择账户 “kk”
作业步骤: 选择类型 “操作系统(CmdExec)” 和运行身份代理。
确定完成!执行作业,成功后发现文件夹创建了!
========================================================================
========================================================================
当然不使用凭据也可以创建,但是作业的拥有者必须拥有最高服务器角色sysadmin。
以下设置也可以创建!
参考:
CREATE CREDENTIAL (Transact-SQL)