SQL Server应用与开发范例宝典
上QQ阅读APP看书,第一时间看更新

2.5 权限管理

如果数据库用户能够创建数据表,则该用户具有创建数据表的权限。权限是针对数据库用户而言的。如果用户想要对数据库进行某种操作,那这个用户必须具有与之对应的权限。本节就讨论权限的管理问题。

实例064 为数据库角色设置权限

本实例可以提高数据库安全性

实例说明

本实例介绍为数据库角色设置权限的方法。

技术要点

下面介绍数据库角色属性(权限选项卡)。

使用此选项卡查看或指定下列选项。

● 数据库角色。

选择要查看或修改其权限的数据库角色。

● 列出全部对象。

列出数据库中的所有对象。单击适当的框以修改角色权限。

● 仅列出具有此用户权限的对象。

仅为具有数据库权限的对象指定权限。单击适当的框以修改角色权限。这在有很多对象且只需查看或修改具有选定角色权限的对象时很有用。

● 对象。

指定选定对象的权限。可以授予或删除执行SELECT、INSERT、UPDATE、DELETE、EXEC语句的权限。还可以授予或删除执行声明引用完整性 (DRI) 约束的权限。有关声明引用完整性约束的更多信息,请参见数据库各组成部分。

● 列。

显示“列权限”对话框,此对话框允许逐列管理对象的权限。

实现过程

上一实例创建了数据库角色db_All,但没有给它赋予数据库操作权限。

下面将为它设置以下权限,能够对作者表(authors)的折扣表(discounts)中的数据进行查询、插入、修改和删除操作,但不能修改作者表中的电话(phone)字段值,能够创建数据表、视图以及存储过程。具体操作步骤如下。

(1)在企业管理器中选择数据库角色db_All,单击鼠标右键,在快捷菜单中选择“属性”命令,或者双击数据库角色db_All,打开“数据库角色属性”对话框,如图2.25所示。

图2.25 数据库角色db_All

(2)单击“权限”按钮,打开图2.26所示的对话框。该对话框主要用来对数据库角色db_All进行权限设置。列表中显示了当前数据库pubs中的对象,包括数据表、视图、存储过程等,同时也列出了对于该对象有哪些数据操作。单击数据操作所对应的空白单元格可以设置权限。如果空白单元格中显示为对号,表示用户能够对该对象执行相应的操作,如果为错号,表示禁止用户对该对象执行相应操作。

图2.26 为数据库角色db_All设置权限

(3)选中表authors,单击“列”按钮,打开列的权限设置对话框,如图2.27所示。

图2.27 设置列的权限

(4)在UPDATE栏将列phone设置为禁止修改,即显示为错号,其他列设置为允许修改,即显示为对号。单击“确定”按钮,关闭对话框。

设置表authors和表discounts后,效果如图2.28所示。

图2.28 数据库角色db_All的对象权限

(5)单击“确定”按钮关闭对话框,完成权限的设置操作。

举一反三

根据本实例,读者可以:

编写T-SQL语句为数据库角色设置权限。

实例065 设置数据库的访问权限

本实例可以提高数据库安全性

实例说明

本实例介绍设置数据库的访问权限的过程。

技术要点

下面介绍数据库用户属性(权限选项卡)。

使用此选项卡查看或指定下列选项。黑色复选标记表示已授予的权限。红色“×”表示拒绝授予的权限。

● 数据库用户。

指定要显示其权限的用户。

● 列出全部对象。

列出选定数据库的全部对象。单击适当的框以修改数据库用户权限。

● 仅列出此用户具有权限的对象。

仅列出用户对其具有权限的对象。单击适当的框以修改数据库用户权限。

● 列。

显示“列权限”对话框,在对话框中可以管理每列的权限。

实现过程

下面设置数据库pubs的访问权限,设置数据库用户mrsoft可以在数据库pubs中创建表和视图。具体操作步骤如下。

(1)在企业管理器中,用鼠标右键单击pubs数据库,在弹出的快捷菜单中选择“属性”命令,打开数据库属性对话框,切换到“权限”选项卡。

(2)选择数据库用户mrsoft,在创建表和创建视图下的空白单元格中设置允许创建,如图2.29所示。

图2.29 设置数据库的访问权限

举一反三

根据本实例,读者可以:

编写T-SQL语句设置数据库的访问权限。

实例066 设置对象的访问权限

本实例可以提高计算机安全性

实例说明

本实例介绍设置对象的访问权限的方法。

技术要点

使用对象属性(权限选项卡)可以查看或指定下列选项。

● 对象。

指定对象的名称。

● 列出全部用户/用户定义的数据库角色/public。

列出选定数据库的所有用户和数据库角色。单击适当的框以修改对象权限。

● 仅列出具有权限的用户/用户定义的数据库角色/public。

只列出已在该对象上具有权限的用户或数据库角色。单击适当的框以修改数据库用户权限。

● 用户/数据库角色/public。

查看用户ID或数据库角色。

● SELECT。

授予、废除或拒绝对该对象的SELECT权限。

● INSERT。

授予、废除或拒绝对该对象的INSERT权限。

● UPDATE。

授予、废除或拒绝对该对象的UPDATE权限。

● DELETE。

授予、废除或拒绝对该对象的DELETE权限。

● EXEC。

授予、废除或拒绝对该对象的EXECUTE权限。

● DRI。

授予、废除或拒绝对该对象的声明引用完整性权限。

● 列。

显示“列权限”对话框,在对话框中可以管理每列的权限。

实现过程

下面设置将允许数据库用户mrsoft对数据库pubs中的作者表authors中的数据进行查询、插入、修改和删除操作。具体操作步骤如下。

(1)在企业管理器中,展开“pubs数据库”→“表”,在右侧的列表中,右键单击表authors,在弹出的快捷菜单中选择“属性”命令,打开表属性对话框。

(2)单击“权限”按钮,打开“对象属性”对话框,如图2.30所示,选择数据库用户mrsoft,在SELECT、INSERT、UPDATE和DELETE下的空白单元格中设置允许操作。

图2.30 设置对象的访问权限

如果要设置表中个别列的访问权限,可先在对话框中选好用户或角色,然后按下“列”按钮,在弹出的图2.31所示的对话框中设置个别列的访问权限。

图2.31 设置个别列的访问权限

说明:在图2.30中所选的是一个表,因此没有EXEC(执行)权限。随着所设置的对象种类不同,画面中可操作的方框部分也会自动调整。

举一反三

根据本实例,读者可以:

编写T-SQL语句设置对象的访问权限;

允许其他账户授予对象权限。