REVOKE和DENY语法格式与GRANT语法格式一样。
14.4.2 利用SQL Server Enterprise Manager 管理权限 在SQL Server 中通过两种途径可实现对语句权限和对象权限的管理,从而实现对用户权限的设定。这两种途径分别为面向单一用户和面向数据库对象两种权限设置。1 面向单一用户的权限设置在SQL Server Enterprise Manager 其执行步骤为:(1) 启动SQL Server Enterprise Manage, 登录到指定的服务器。(2) 展开指定的数据库,然后单击Users 图标,此时在右窗格中将显示数据库所有用户。(3) 在数据库用户清单中选择要进行权限设置的用户,右击用户名,然后在弹出 菜单中选择Properties, 弹出Database User Properties 对话框,如图14-6 所示。
(4) 在Database User Properties 对话框中单击Permission 按钮,弹出如图14-7 所示的Database User Properties 对话框,在该对话框中进行对象权限设置。
(5) 单击确定,完成权限设置。 在图14-6 的对话框中,如果在Database role membership 选项栏中选择任何一个数 据库角色(在缺省条件下,任何数据库用户都至少是public 角色),实际上就完成了 数据库用户语句权限的设置。因为对于这些数据库固定角色,SQL Server 已定义了其 具有哪些语句权限,例如db_owner 具有执行CREATE DATABASE 的语句权限(关于 角色将在下节作详细介绍)。 在图14-7 的用户权限设置对话框中,显示了用户当前数据库中的所有对象,其中 包括表、视图、存储过程等,同时也给出针对该对象能够进行哪些操作。通过单击其 中的空白方格来完成权限设置。当空白方格内为对号时,表示执行了GRANT 语句, 即用户能够对该对象执行相应的操 作;当空白方格内为错号时,表示执 行了DENY 语句,即禁止对该对象 的相应操作。通过点击“List only objects with permissions for this user”,将列出该 用户有权访问的所有数据库对象以及 详细的访问权限设置信息。 在图14-7 的用户权限设置对话 框 ,可以单击Column 按钮,在打开 的Column Permissions 对话框中来决 定用户对哪些列具有哪些权限。如图 14-8 所示。
2 面向数据库对象的权限设置在SQL Server Enterprise Manager 其执行步骤为:(1)启动SQL Server Enterprise Manager, 登录到指定服务器。(2)展开指定的数据库,从中选择用户对象(表、视图、存储过程)。(3) 在右格对话框中选择要进行权限设置的对象,右击该对象。(4) 在弹出菜单中选择All tasks, 选择Manage Permission, 此时弹出ObjectProperties 对话框。如图14-9 所示。
(5) 设置权限,单击确定。 Object Properties 对话框与Database User Properties 对话框极为相似,在Database User Properties 对话框,我们为某一用户设置其对当前数据库所有对象的访问权限;在Object Properties 对话框中,我们为某一数据库对象设置当前数据库所有用户对其的访问权限。 通过点击“List only User/DB Roles with permissions on this object”,可以列出所有对该对象具有访问权限的数据库用户或角色。