【问题标题】:Grey out 'Edit Top 200 Rows' SSMS灰显“编辑前 200 行”SSMS
【发布时间】:2017-06-12 16:57:56
【问题描述】:

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

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

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

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

所以我的问题是,我是否为该用户提供了正确的访问权限?如果是这样,我如何使“编辑前 200 行”选项变灰?如果没有,我需要做什么?

感谢任何帮助。

【问题讨论】:

  • 有服务器角色和数据库角色。 db_datareader 是一个数据库角色。您确定他们没有任何可能赋予他们额外权限的服务器角色(如系统管理员)吗?我不确切知道该菜单的行为方式,但您不能在不同的数据库上进行测试吗?
  • @snow_FFFFFF 我检查了服务器角色。该用户不在其中,包括系统管理员。

标签: sql-server ssms-2012


【解决方案1】:

SSMS 不会查询权限以确定用户的能力或 UI 选项。例如,您可能没有 DDL 修改权限,但它会让您尝试编写 alter/create 语句的脚本。您不能取消编辑行选项,但如果他们没有权限,那么当他们尝试将焦点从他们编辑的行上移开时,提交将失败。

如果您想查看有效权限,您可以使用此功能查看授权/拒绝的结果层: https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-my-permissions-transact-sql

一般来说,确保用户的登录具有最小权限,然后使用之前已经审查/测试过的数据库级别的角色。

【讨论】:

  • 啊刚刚测试过了。你说的对!他们在尝试跳到下一行时被拒绝。我不知道为什么我没有自己测试,但无论如何还是谢谢!
猜你喜欢
  • 2011-01-01
  • 1970-01-01
  • 2023-01-24
  • 2014-05-17
  • 1970-01-01
  • 2012-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多