灰色显示"编辑前 200 行"SSMS



在SQL Server MNGT Studio 2012中,我们有一个数据库,我们只想授予特定用户只读访问权限。

所以我(作为管理员),登录到服务器..为了参数起见,数据库名称是SQLSERVER01

登录后,我会看到DatabasesSecurityServer ObjectsReplicationManagementSQL Server Agent。 我进入Security选项卡并转到Logins. 我们要授予只读访问权限的用户已经具有登录名。 所以我双击他们的登录名。 我去User Mapping. 找到我要授予他们只读访问权限的数据库。 我单击数据库名称旁边的复选框,下面我为用户提供db_datareaderpublic

因此,我打电话给用户,他们能够看到数据库中的表,但是如果他们右键单击表名称,他们仍然可以看到显示Edit Top 200 Rows的选项,然后单击它并查看该表的编辑 gui。 现在我没有测试输入数据以查看他们是否真的可以编辑或添加数据,因为这风险太大。

所以我的问题是,我是否给了这个用户正确的访问权限?如果是这样,如何将"编辑前 200 行"选项变灰? 如果没有,我需要做什么?

任何帮助,不胜感激。

SSMS 不会查询权限来确定用户的功能或 UI 选项。 例如,您可能没有 DDL 修改权限,但它允许您尝试编写更改/创建语句的脚本。 您无法取消编辑行选项,但如果他们没有权限,则当他们尝试将焦点移出他们编辑的行时,提交将失败。

如果要查看有效权限,可以使用此函数查看生成的授予/拒绝层: https://learn.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-my-permissions-transact-sql

通常,请确保用户的登录名具有最低权限,然后在数据库级别使用以前已查看/测试的角色。

最新更新