【发布时间】:2017-06-12 16:57:56
【问题描述】:
在 SQL Server MNGT Studio 2012 中,我们有一个数据库,我们只想授予特定用户只读访问权限。
所以我(作为管理员),登录到服务器.. 为了参数,数据库名称是 SQLSERVER01
然后登录后,我会看到 Databases、Security、Server Objects、Replication、Management 和 SQL Server Agent。我进入Security 选项卡并转到Logins。我们想要授予只读访问权限的用户已经有一个登录名。所以我双击他们的登录。我去User Mapping。找到我想授予他们只读访问权限的数据库。我单击数据库名称旁边的复选框,在下面我给用户db_datareader 和public。
所以,我打电话给用户,他们可以看到数据库中的表,但是如果他们要右键单击表名,他们仍然可以看到显示Edit Top 200 Rows 的选项,然后单击它并查看该表的编辑 gui。现在我没有测试输入数据,看看他们是否真的可以编辑或添加数据,因为这太冒险了。
所以我的问题是,我是否为该用户提供了正确的访问权限?如果是这样,我如何使“编辑前 200 行”选项变灰?如果没有,我需要做什么?
感谢任何帮助。
【问题讨论】:
-
有服务器角色和数据库角色。 db_datareader 是一个数据库角色。您确定他们没有任何可能赋予他们额外权限的服务器角色(如系统管理员)吗?我不确切知道该菜单的行为方式,但您不能在不同的数据库上进行测试吗?
-
@snow_FFFFFF 我检查了服务器角色。该用户不在其中,包括系统管理员。
标签: sql-server ssms-2012