Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 灰显';编辑前200行';SSMS_Sql Server_Ssms 2012 - Fatal编程技术网

Sql server 灰显';编辑前200行';SSMS

Sql server 灰显';编辑前200行';SSMS,sql-server,ssms-2012,Sql Server,Ssms 2012,在SQL Server MNGT Studio 2012中,我们有一个只想授予特定用户只读访问权限的数据库 所以我(作为一名管理员)登录到服务器。。为了参数起见,数据库名称为SQLSERVER01 登录后,我会看到数据库,安全性,服务器对象,复制,管理,以及SQL Server代理。我进入安全选项卡并进入登录。我们要授予只读访问权限的用户已登录。所以我双击他们的登录名。我转到用户映射。查找我要授予他们只读访问权限的数据库。我单击数据库名称旁边的复选框,然后在下面给用户db\u datareade

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

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

登录后,我会看到
数据库
安全性
服务器对象
复制
管理
,以及
SQL Server代理
。我进入
安全
选项卡并进入
登录
。我们要授予只读访问权限的用户已登录。所以我双击他们的登录名。我转到
用户映射
。查找我要授予他们只读访问权限的数据库。我单击数据库名称旁边的复选框,然后在下面给用户
db\u datareader
public

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

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


非常感谢您的帮助。

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

如果要查看有效权限,可以使用此功能查看授予/拒绝的结果层:


通常,请确保用户的登录具有最低权限,然后在DB级别使用之前已检查/测试过的角色。

有服务器角色和数据库角色。db_datareader是一个数据库角色。您确定他们没有任何服务器角色(如sysadmin)可以授予他们额外的权限吗?我不知道菜单的具体行为,但你能不能在不同的数据库上测试一下?@snow_FFFFFF我检查了服务器角色。该用户不在其中任何一个中,包括sysadmin.ahh刚刚测试过。你是对的!他们在尝试切换到下一行时被拒绝。我不知道为什么我没有在自己的lol上测试,但无论如何,谢谢!