c++ - 使用 C++ sql.h 备份 SQL 数据库
问题描述
我试图使用 C++ 创建一个 backup.bak 文件。当我使用这个命令
BACKUP DATABASE myDB TO DISK = 'D:\folder\MyDatabase.bak'
在 Microsoft SQL Server 管理中它工作得很好
但是当我使用 C++ 执行相同的命令时
SQLExecDirect(SQLStatementHandle, (SQLCHAR*)SQLQuery2, SQL_NTS)
我得到错误号 42000,这意味着 -- 语法错误或访问冲突 *StatementText 包含无法准备的 SQL 语句或包含语法错误。
用户无权执行 *StatementText 中包含的 SQL 语句。
虽然命令是一样的
解决方案
用户无权执行...中包含的 SQL 语句
这是因为备份操作需要可以授予的额外权限:
在服务器级别:
GRANT BACKUP DATABASE TO [loginInUse]
或者,在某些特定的数据库级别:
use db
EXEC sp_addrolemember 'db_backupoperator', 'loginInUse'
推荐阅读
- javascript - 如何修改对象数组中的对象键值并返回初始数组?
- photoshop - 使用组名 Photoshop 保存多个文件
- java - IllegalAccessError 仅在 AsyncTask 内的 Android 9 上
- visual-studio-2015 - 如何在 Visual Studio 2015 中按顺序运行 mstest 单元测试?
- laravel - laravel 中用户'root'@'localhost'的访问被拒绝(使用密码:YES)
- javascript - CSS - 定义打印画布
- swift - 有什么方法可以为 iOS 10 及更高版本将字距设置为 SKLabelNode?
- php - 如何在php中打印一个数组?
- php - Laravel 迁移无法创建外键
- javascript - 当在脚本加载和用户自己添加标签时添加标签时,yairEO/tagify 相同的事件