Sql-Server

SQL DB 中的架構權限

  • January 14, 2021

我是 SQL DB 的新管理員,我需要學習如何在 SQL DB 中建立安全設置。我遇到了一個對我來說不清楚甚至奇怪的問題。

我知道如果一個使用者擁有固定數據庫級角色 db_datareader,他或她可以對數據庫中的所有使用者表執行“SELECT”。 https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles

但是在我的 SQL DB 中,即使已經添加到該角色的使用者也無法在任何表/視圖上執行“SELECT”,除非在“Schemas settings”中明確授予“SELECT”權限,這意味著 db_datareader 角色不起作用全部。

有人可以給我建議嗎?非常感謝

這些是標准許可:

在此處輸入圖像描述

對於這個映射的使用者設置:

在此處輸入圖像描述

您為您的使用者設置了某種拒絕。

您的問題的答案在以下程式碼的結果中:

execute as user = 'your_user'

select *
from sys.user_token
where principal_id <> USER_ID()

revert

請使用“your_user”是有問題的使用者的結果更新您的問題

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