2017-06-12 132 views
0

在SQL Server MNGT Studio 2012中,我們有一個數據庫,我們只想授予特定用戶只讀訪問權限。灰色'編輯前200行'SSMS

所以我(作爲一個管理員),登錄到服務器..爲了討論各種情形,數據庫名稱爲SQLSERVER01

然後登錄後我看到DatabasesSecurityServer ObjectsReplicationManagementSQL Server Agent。我進入Security選項卡並轉到Logins。我們想給予只讀權限的用戶已經有了一個登錄名。所以我雙擊他們的登錄。我去User Mapping。找到我想給他們的只讀訪問權限的數據庫。我點擊數據庫名稱旁邊的複選框,在下面我給用戶db_datareaderpublic

因此,我打電話給用戶,他們能夠看到數據庫中的表,但是如果他們要右鍵單擊表名,他們仍然可以看到Edit Top 200 Rows這個選項,然後單擊它並請參閱該表格的編輯gui。現在我沒有測試輸入數據,看看他們是否可以真正編輯或添加數據,因爲這太冒險了。

所以我的問題是,我給這個用戶正確的訪問?如果是這樣,我該如何選擇「編輯排行200行」?如果不是,我需要做什麼?

任何幫助表示讚賞。

+1

有服務器角色和數據庫角色。 db_datareader是一個數據庫角色。你確定他們沒有任何服務器角色(如sysadmin)可能會給他們額外的權限嗎?我不知道該菜單的具體行爲,但不能僅僅測試一個不同的數據庫? –

+0

@snow_FFFFFF我檢查了服務器角色。此用戶不在其中,包括系統管理員。 –

回答

1

SSMS不查詢權限來確定用戶的功能或UI選項。例如,您可能沒有DDL修改特權,但它可以讓您嘗試編寫alter/create語句的腳本。您不能刪除編輯行選項,但如果他們沒有權限,則在嘗試將焦點從其編輯的行移開時,提交將失敗。

如果你想看到你可以使用這個功能來查看生成的補助層有效允許/拒絕: https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-my-permissions-transact-sql

一般情況下,確保用戶的登錄具有最小的權限,然後在使用角色先前已經審查/測試過的數據庫級別。

+0

啊只是測試了一下。你是對的!當試圖標籤到下一行時,他們會被拒絕。我不知道爲什麼我沒有在自己的大聲笑上測試,但無論如何感謝! –