tôi cho rằng bạn đang chạy chương trình của mình dưới dạng tác vụ được lên lịch ... bạn có cấp quyền bằng văn bản cho thư mục đích cho người dùng thực thi tác vụ không ??
chỉnh sửa:
với các điều khoản bạn có thể có 2 kịch bản:
- cửa sổ authenification
- hỗn hợp xác thực
nếu bạn đang sử dụng cửa sổ xác thực, đọc và quyền ghi của người dùng cửa sổ được thực hiện. nếu không thì các điều khoản cho tài khoản dịch vụ máy chủ sql.
và hành vi này có ý nghĩa với tôi và có thể chạm vào móng trong kịch bản của bạn!
chỉnh sửa 2:
tôi không muốn khuyến khích bạn làm như vậy ... một số quản trị viên có thể ghét bạn khi bạn mess up acl của họ nhưng this có thể làm các trick
btw: Magnus Johansson already gave bạn một "thử-này" liên kết
dù cho phương pháp nào bạn đi - (! như descriped trên) hãy chắc chắn để tay trong người sử dụng đúng
(fo r full history)
...
lưu ý phụ:
tôi biết đây không phải là câu trả lời chính xác cho câu hỏi của bạn, nhưng tôi khuyên bạn nên tạo bản sao lưu ...
như
using Microsoft.SqlServer.Management.Smo;
var bdi = new BackupDeviceItem(/* your path inlcuding desired file */);
var backup = new Backup
{
Database = /* name of the database */,
Initialize = true
};
backup.Devices.Add(bdi);
var server = new Server(this.SqlServer);
try
{
backup.SqlBackup(server);
}
catch (Exception ex)
{
// * log or sth
}
bạn chỉ cần chăm sóc của .dll. lấy hội đồng cho phiên bản máy chủ mong muốn (một số thông số/thuộc tính khác nhau thông qua các phiên bản máy chủ khác nhau)
thông tin khác here
Nguồn
2009-04-08 10:15:24