Sql-Server

授予使用者恢復數據庫的權限

  • February 23, 2020

在數據庫中,我創建了一個具有以下角色的使用者:

伺服器角色

  • 上市

數據庫角色

  • db_backupoperator
  • db_ddladmin
  • db_datareader
  • db_datawriter

問題是我不想更改使用者的角色,但我確實想授予恢復數據庫的權限。

是否有解決方法只授予恢復權限但不刪除或更改數據庫?

背景資料:

我工作的公司創建了一個應用程序,他們希望該應用程序的使用者有權備份和恢復數據庫,但不能創建另一個數據庫或刪除現有數據庫。而且,他們不希望擁有另一個具有 角色的使用者db_owner,這將允許客戶隨心所欲地操縱事物。

該應用程序的價格取決於客戶擁有的員工數量,因此在客戶端安裝該應用程序時,他們使用文件創建一個數據庫,在其中指定所有詳細資訊(包括員工數量),但他們擔心有人可能會多次更改文件並添加數據庫,因此他們希望通過不授予任何使用者執行任何操作的權利來保護實例。這很複雜,但這是他們想要的。

您不能在 SQL 伺服器級別上執行此操作。但是您可以在作業系統級別執行此操作。嘗試這條路線:

  1. 使用TDE,它特別加密 .ldf 和 .mdf 文件。
  2. 而不是本機 t-sql 備份恢復 (.bak)。對數據庫文件(.ldf 和 .mdf)進行備份恢復

使用者仍然可以刪除數據庫,因為他可以訪問物理文件。但他將無法更改,甚至無法查看數據,因為數據庫是加密的。

注意!

備份 .ldf 和 .mdf 文件有明顯的弊端,需要停止 SQL Server,沒有辦法進行差異備份和增量備份

但是有一個不明顯的缺點,有關此類備份的資訊不會儲存在系統表中

$$ msdb $$.$$ dbo $$.$$ Backupmediafamily $$和$$ msdb $$.$$ dbo $$.$$ Backupset $$. 如果伺服器執行增量或差異備份,那麼恢復 .ldf 和 .mdf 文件可能會導致備份鏈嚴重混亂

引用自:https://dba.stackexchange.com/questions/260137