SQL Server建立使用者只能訪問指定資料庫和檢視

冬日暖羊發表於2024-10-31

我們在給資料庫使用者賦予許可權時,有時候不想讓該使用者看到太多過程表和過程檢視,這時就需要限定使用者的訪問許可權

第一步:建立使用者

建立資料庫連線後,進入安全性——登入名,單擊右鍵,新建登入名,並設定預設資料庫

第二步:設定使用者對映

點選使用者對映,勾選指定要訪問的資料庫,資料庫成員身份預設為public,無需更改,然後單擊確定

這時候,我們可以看到指定的資料庫使用者中增加了剛剛新增的使用者

第三步:設定只能訪問指定的資料表或檢視

指定資料庫——安全性——使用者——需要指定的使用者,單擊右鍵——屬性——安全物件——搜尋——特定物件——物件型別(選擇自己需要指定使用者訪問的物件型別,我這裡選擇的是檢視),然後點選瀏覽,勾選需要給使用者授權訪問的檢視,確定即可

第四步:給指定表或檢視賦予具體許可權

如果是隻讀,則只需要勾選“選擇”許可權,設定好後點選確定即可

注意:這裡需要每張表或檢視逐一設定

第五步:檢查許可權

用剛剛新增的使用者登入資料庫,我們發現只能看到改資料庫下剛剛賦予許可權的檢視,其他的表和檢視都不可見,達到目標

看很多其他的文章,都說要做這步設定

USE [JTDataPatform]
GO
EXEC dbo.sp_changedbowner N'JT' 

實踐證明,執行了這條語句之後,後面如果想刪除該使用者會遇到各種奇葩的錯誤提示導致使用者無法刪除,這時候只需要再重新將owner的許可權賦值給sa,然後就可以順利刪除自己新建的使用者啦

USE [JTDataPatform]
GO
EXEC dbo.sp_changedbowner N'sa'

  

相關文章