您的位置: 网站首页 > 数据库 > SQL Server数据库应用技术 > 第5章 安全管理 > 【5.3 权 限 管 理】

5.3 权 限 管 理

 

5.3 

数据库中每一个对象都由一个数据库的用户所拥有,在该对象刚刚建立之后,只有该对象的所有者才能访问,如果其他用户想访问该对象,需要数据库对象所有者授予权限。

5.3.1  权限分类

SQL Server中权限可以分为3种,即对象权限、语句权限和暗示性权限。下面分别介绍这几种权限。

1.对象权限

对象权限是执行与表、视图和存储过程等数据库对象有关行为的权限。数据库对象的所有者可以将对象权限授予指定的数据库用户。

对于表和视图,所有者可以授予InsertUpdateDeleteSelectReferences权限,还可以直接授予All权限,允许上述所有的权限。用户要对表进行这些语句的操作就必须要具有这些权限。存储过程的所有者可以授予其他用户执行该存储过程的权限。

2.语句权限

语句权限是对用于创建数据库和其中的对象的Transact-SQL语句所拥有的权限。语句权限适用于语句自身,而不适用于数据库中定义的特定对象。语句权限包括Create DATABASECreate TableCreate RULECreate PROCEDURECreate DEFAULTCreate FUNCTIONBackup DATABASEBackup LOG

3.暗示性权限

暗示性权限指有SQL Server定义的服务器角色、数据库的所有者和数据库对象所有者所拥有的权限。例如,拥有表的用户可以查看、添加、删除数据,也可以更改表的定义,还可以控制允许其他用户对表进行操作的权限。暗示性权限不需要明确指定,也无法进行更改设置。

5.3.2  管理对象权限

对象权限可以由sysadmin服务器角色、数据库所有者、特定数据库角色中的成员进行授予、拒绝或取消。可以使用企业管理器来管理对象权限,也可以使用Transact-SQL语句,下面主要介绍使用企业管理器来管理对象权限,具体操作步骤如下:

1)打开企业管理器,展开指定的数据库节点,右击需要查看或修改权限的表,在弹出的右键菜单中选择“属性”命令,弹出如图5-11所示“表属性”对话框。对话框中显示了名称、创建日期、文件组、行数等基本信息,在“列”列表框中显示了各字段的信息。

2)单击“权限”按钮,弹出如图5-12所示对话框。在“对象”下拉列表框中可以选择要更改的对象,在下方列表框中列出用户、数据库角色、public等,以及对数据库对象的操作,具体含义为:

·    SELECT对表或者视图的查询。

·    INSERT对表或者视图插入刻录。

·    UPDATE对表或视图的数据修改。

·    DELETE删除表或视图的数据。

·    EXEC执行存储过程。

·    DRIDeclarative Referential Integrity):可对表的外键加以限制,以实现表的参照完整性。

5-11 “表属性”对话框

5-12  对象属性对话框

3)图5-12列表框中显示的是全部用户或数据库角色。还可以通过单击“仅列出对此对象具有权限的用户/用户定义的数据库角色/public”单选按钮,从而只列出已在该对象上具有权限的用户或者数据库角色。如果要修改对某个对象的访问权限,用鼠标左键单击其对应列下方的方格,方格中会依次出现如下三种形式,各自含义如下。

·    授予权限,表示允许此用户或角色对该对象执行这个操作。

·    ×:禁止权限,表示禁止此用户或角色对该对象执行这个操作。

·    空:未授权限,表示尚未授权此用户或角色对该对象执行这个操作。

4)还可以单击一个特定的用户或角色,然后单击“列”按钮,打开如图5-13所示“列权限”对话框,从而可以对字段级别进行权限管理。管理方法与设置对象权限一样,可以通过鼠标单击在授予权限、禁止权限、未授权限之间进行切换。

5-13 “列权限”对话框

5)单击“确定”按钮,从而成功设置了对象权限。

5.3.3  管理语句权限

管理语句权限可以利用企业管理器进行设置,也可以使用Transact-SQL语句进行管理,下面将介绍如何使用企业管理器进行设置。

1)打开企业管理器,展开指定的数据库节点,右击要查看或修改权限的数据库,在弹出的右键菜单中选择“属性”命令,弹出“数据库属性”对话框。

2)单击“权限”标签,激活“权限”选项卡,如图5-14所示。在该选项卡中,可以设置相应的语句权限,单击各列下方的方框,出现“√”符号时就表示授予该权限。

5-14  数据库属性

3)设置了相应的权限后,单击“确定”按钮保存设置。