灰显 'Edit Top 200 Rows' SSMS
Grey out 'Edit Top 200 Rows' SSMS
在 SQL Server MNGT Studio 2012 中,我们有一个数据库,我们只想授予特定用户只读访问权限。
所以我(作为管理员),登录到服务器.. 为了参数的缘故,数据库名称是 SQLSERVER01
然后登录后我看到 Databases
、Security
、Server Objects
、Replication
、Management
和 SQL Server Agent
。我进入 Security
选项卡并转到 Logins
。我们要授予只读访问权限的用户已经登录。所以我双击他们的登录名。我去User Mapping
。找到我想授予他们只读访问权限的数据库。我单击数据库名称旁边的复选框,然后在下方为用户提供 db_datareader
和 public
.
所以,我打电话给用户,他们可以看到数据库中的 table,但是如果他们右键单击 table 名称,他们仍然可以看到显示 Edit Top 200 Rows
的选项,然后单击它并查看 table 的编辑图形用户界面。现在我没有测试输入数据以查看他们是否真的可以编辑或添加数据,因为这太冒险了。
所以我的问题是,我是否授予该用户正确的访问权限?如果是这样,我如何将 'Edit Top 200 Rows' 的选项变灰?如果没有,我需要做什么?
感谢任何帮助。
SSMS 不查询权限以确定用户的能力或 UI 选项。例如,您可能没有 DDL 修改权限,但它会让您尝试编写 alter/create 语句的脚本。您无法取消编辑行选项,但如果他们没有权限,那么当他们尝试将焦点移出他们已编辑的行时,提交将失败。
如果您想查看 有效 权限,您可以使用此函数查看 grant/denies 的结果层:
https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-my-permissions-transact-sql
通常,确保用户的登录具有最小权限,然后使用之前 reviewed/tested.
数据库级别的角色
在 SQL Server MNGT Studio 2012 中,我们有一个数据库,我们只想授予特定用户只读访问权限。
所以我(作为管理员),登录到服务器.. 为了参数的缘故,数据库名称是 SQLSERVER01
然后登录后我看到 Databases
、Security
、Server Objects
、Replication
、Management
和 SQL Server Agent
。我进入 Security
选项卡并转到 Logins
。我们要授予只读访问权限的用户已经登录。所以我双击他们的登录名。我去User Mapping
。找到我想授予他们只读访问权限的数据库。我单击数据库名称旁边的复选框,然后在下方为用户提供 db_datareader
和 public
.
所以,我打电话给用户,他们可以看到数据库中的 table,但是如果他们右键单击 table 名称,他们仍然可以看到显示 Edit Top 200 Rows
的选项,然后单击它并查看 table 的编辑图形用户界面。现在我没有测试输入数据以查看他们是否真的可以编辑或添加数据,因为这太冒险了。
所以我的问题是,我是否授予该用户正确的访问权限?如果是这样,我如何将 'Edit Top 200 Rows' 的选项变灰?如果没有,我需要做什么?
感谢任何帮助。
SSMS 不查询权限以确定用户的能力或 UI 选项。例如,您可能没有 DDL 修改权限,但它会让您尝试编写 alter/create 语句的脚本。您无法取消编辑行选项,但如果他们没有权限,那么当他们尝试将焦点移出他们已编辑的行时,提交将失败。
如果您想查看 有效 权限,您可以使用此函数查看 grant/denies 的结果层: https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-my-permissions-transact-sql
通常,确保用户的登录具有最小权限,然后使用之前 reviewed/tested.
数据库级别的角色