我正在使用 Ola Hallengrens DB 备份,并试图让它与 URL 参数一起使用。
我首先使用以下 sql 在 SQL 中设置共享访问凭证
USE MASTER
CREATE CREDENTIAL [https://exampleblob.blob.core.windows.net/backups]
WITH IDENTITY='SHARED ACCESS SIGNATURE'
,SECRET = 'sv=2015-04-05&ss=bf&srt=sco&sp=rwd&se=2030-11-14T20:07:06Z&st=2016-11-13T12:07:06Z&spr=https&sig=KEY'
GO
接下来我尝试在我的日志备份维护计划中使用以下内容:
sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d DBATools -Q \
"EXECUTE [dbo].[DatabaseBackup] \
@Databases = 'USER_DATABASES', \
@BackupType = 'LOG', \
@Verify = 'Y', \
@Compress = 'Y', \
@CheckSum = 'Y', \
@LogToTable = 'Y', \
@ChangeBackupType='Y', \
@url='https://exampleblob.blob.core.windows.net/backups', \
@Credential='https://exampleblob.blob.core.windows.net/backups'" -b
但是,当我运行该作业时,出现以下错误
使用 WITH CREDENTIAL 语法对包含共享访问签名的凭据无效
我刚刚在 SQL Server 中创建维护计划时遇到了这个问题。默认备份维护计划会创建一个包含 的脚本
WITH CREDENTIAL
,但是当我删除该默认任务时我能够让它工作。所以我在执行 T-SQL 语句任务中得到了这段代码:如果您打开“备份数据库任务”的属性并将“CredentialName”设置为空,则保存计划并运行作业实际上会成功。
尝试使用 SSMS 13.0.16100.1