iT邦幫忙

0

SQL Server 2014 維護計畫 - 維護清除工作

misadm 2017-10-26 14:37:0113673 瀏覽

小弟使用 SQL Server 2014,想透過『維護計畫』刪除記錄檔。

這個功能我之前就有在備份資料庫時,將早於 1 個月之前的 BAK 檔刪除。而這次我是想要刪除『維護計畫的紀錄檔』如下圖所示:
https://ithelp.ithome.com.tw/upload/images/20171026/20001287zx8sjrbWJi.png
(圖一)

執行之後,會顯示成功,但卻沒有刪除檔案,拜過 Google 大神之後,有可能是沒有權限刪除檔案的關係。

在試過多組帳號,及安全性的組合,仍無法將記錄檔刪除,最後索性讓紀錄檔的安全性變成『Everyone 完全控制』結果就成功刪除了(權限如下圖)!!
https://ithelp.ithome.com.tw/upload/images/20171026/20001287P3k7Xovpom.png
(圖二)

可以確定真的是因為權限的關係,網路上查到是說與 SQL Server 以及 SQL Server Agent 的啟動帳號有關(我的啟動帳號如下圖)
https://ithelp.ithome.com.tw/upload/images/20171026/20001287RvN8kyUxH3.png
(圖三)

在此想請教一下大家,我是不是哪邊設錯了!?可以刪除資料庫備份檔(BAK) 卻無法刪除紀錄檔(TXT) 呢?有人遇過類似的事嗎?

還請大家多多幫忙,感激不盡,謝謝!

2017/10/27 補充:
還有另外一點我也很納悶,同樣都是利用維護計畫,備份資料庫及刪除檔案,計畫所使用的執行身分也都是『SQL Server Agent』,如圖四、五所示:
https://ithelp.ithome.com.tw/upload/images/20171027/20001287EDAeJJ8gNt.png
(圖四)
https://ithelp.ithome.com.tw/upload/images/20171027/20001287Ip2XP2rYbc.png
(圖五)

但是檔案的擁有者及安全性中的權限,卻分別屬於『MSSQLSERVER』以及『SQLSERVERAGENT』
https://ithelp.ithome.com.tw/upload/images/20171027/200012870iSy7lliAl.png
(圖六,這是資料庫)
https://ithelp.ithome.com.tw/upload/images/20171027/20001287Hrb4zS1diq.png
(圖七,這是紀錄檔)

然後資料庫備份的那個維護計畫(圖五)是可以成功刪除我不要的檔案,但是紀錄檔的那個(圖四)雖然執行計畫會成功,但是檔案卻沒有刪除!

完全無法理解!!

還請大家幫忙,感恩!感恩!再感恩!

謝謝!

看更多先前的討論...收起先前的討論...
關鍵在第二章圖,那個 SQLSERVERAGENT 群組,你要確認執行計畫的帳號必須是這個群組內的人
misadm iT邦高手 10 級 ‧ 2017-10-27 08:56:37 檢舉
我也有這樣想過,但是我怎麼找都找不到『SQLSERVERAGENT』這個群組耶!
sam0407 iT邦大師 1 級 ‧ 2017-10-27 14:18:51 檢舉
SQLSERVERAGENT和MSSQLSERVER都只是預設安裝的虛擬帳戶,您可參考以下連結:
https://docs.microsoft.com/zh-tw/sql/database-engine/configure-windows/configure-windows-service-accounts-and-permissions#Default_Accts
至於預設帳戶的權限不足,可自建一個帳號去啟動SQL Server及SQL Agent這兩個服務即可
misadm iT邦高手 10 級 ‧ 2017-10-30 17:02:50 檢舉
我有試過使用最大權限 Domain Admins 去啟動 SQL Agent 服務,而且檔案的安全性權限也都有,但是就是無法刪除成功。

但只要在安全性增加『Everyone』完全控制,即可解決!!

都給最大權限了!還是不行!!快瘋了!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
grande
iT邦新手 5 級 ‧ 2020-09-05 09:40:10

查詢MSSQLSERVER群組要使用NT Service\MSSQLSERVER去查,只用MSSQLSERVER是查不到的,同理要用NT Service\SQLSERVERAGENT

我要發表回答

立即登入回答