Sql-Server

SQL Server:如何防止數據通過暴露的視圖被修改?

  • December 8, 2016

我有一個數據庫:DB 1

在不同的數據庫DB 2中,我想創建一堆引用數據的視圖DB 1。這些視圖會相對複雜,有很多連接、聚合、子查詢等。

我不希望使用者DB 2能夠修改DB 1. 即我不希望使用者能夠在視圖上執行 INSERT、UPDATE、DELETE 查詢。

這篇博文:http ://sqlhint.com/sqlserver/views/creating-readonly-views

建議我可以使用一個INSTEAD子句。我寧願只禁止視圖本身的某些查詢子句,特定使用者除外。這可能嗎?

這是通過視圖和表的安全性來處理的。僅SELECT授予視圖和基礎表的權限。

如果沒有寫訪問權限,通過視圖的 INSERT、UPDATE 和 DELETE 將失敗。

如果使用者可以通過某個組訪問,並且您希望該組仍然可以訪問但不希望這些特定使用者具有訪問權限,那麼您可以使用DENY權限,因為DENY它優先於GRANT.

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