
2、自定义数据库角色
如果系统提供的固定数据库角色不能满足要求,用户也可创建自定义数据库角色。例如,教学数据库teachdb原来对教师、管理人员和学生分别建立不同的用户帐户,通过指派它们加入固定数据库角色赋予了不同的权限。现在,学校要召开党代表大会,由于党员既有教师,又有管理人员,还有学生,他们需要访问教学数据库中某一新建的表,或对其他表进行一些特定的操作。为此,就可创建一个自定义数据库角色,赋予该角色相应的权限,然后将参加大会的用户加入该角色中。
使用企业管理器创建自定义数据库角色的操作步骤:
- 在企业管理器中登录到指定的服务器,展开指定的数据库,选中
图标。 - 右击
图标,在弹出菜单中选择
命令,弹出“数据库角色属性—新建角色”对话框。 - 在
框中输入该自定义数据库角色的名称。 - 在“数据库角色类型”选项栏中选择数据库角色类型:“标准角色”或“应用程序角色”。如果选择“标准角色”,可单击
按钮,将数据库中的用户添加到该新建的数据库角色当中,也可以在以后添加;如果选择了“应用程序角色”,则在“密码”框中输入密码。按
按钮,即完成该自定义角色的创建。
下图所示为按以上步骤在teachdb数据库中新创建的一个数据库角色role_1。但此时,该数据库角色的权限尚未指定,因为在新建数据库角色时不能同时为它分配权限
- 鼠标右击新建的数据库角色(这里为role_1),从弹出菜单中选择“属性(R)”命令,如图6-18中椭圆圈所示。打开该数据库角色的属性窗口。
![]()

创建数据库角色role_1
- 此时“数据库角色属性”窗口中的
按钮可以选择,单击此按钮打开“权限”窗口,如下图所示,可从中设置相应对象的操作权限。 - 如果要删除用户自定义的数据库角色,在企业管理器中右击该数据库角色,从如图6-18所示的快捷菜单中选择
选项,并在随后的确认对话框中选择
,就可以删除该用户自定义角色。但需注意,不能删除一个有成员的角色,即必须首先删除数据库角色的成员,然后才能删除该角色。另外,系统固定数据库角色不能被删除。

设置数据库角色的权限
3、权限的授予、拒绝与废除
用户及自定义数据库角色的权限可以有三种状态:已授予、已拒绝或已废除。
授予:授予可执行操作的权限。
授予用户或数据库角色相应的权限使之能在数据库中使用数据或执行其他期望的操作,这是用户在SQL Server中工作必须满足的条件。只有系统管理员、安全管理员和数据库的所有者或数据库对象的所有者才有对用户或数据库角色授予相应权限的权利。可以使用企业管理器或用GRANT语句来授予权限。
用户授予的权限既包括它们所属角色的权限,又包括它们单独授予的权限。
拒绝:禁止用户或数据库角色执行操作的权限。
拒绝用户或数据库角色的权限包括以下效果:
删除以前授予用户或角色的权限。
取消从其它角色继承的权限。
使用户或角色将来不会继承别的角色的权限。
只有系统管理员、安全管理员和数据库的所有者或数据库对象的所有者才有对用户或数据库角色拒绝相应权限的权利。可以使用企业管理器或用DENY语句来拒绝权限。
废除:废除已授予或已拒绝的权限。
废除用户或数据库角色的权限不仅指废除已授予的权限,还包括废除以前被拒绝的权限。
废除已授予的权限并不阻止用户或角色以后从其他角色继承被授予的该权限。从这个意义上说,拒绝比废除有更高的级别。即只要一个对象拒绝了一个用户或角色的访问权限,即使它们通过其他角色被授予了该权限,仍无法访问该对象
废除被拒绝的权限并不表明用户或角色就具备了该权限。只有重新授予后才能使它们具有该权限。但一个已被拒绝的权限如果不加废除是不能重新授予的。即只要一个对象拒绝了一个用户或角色的访问权限,如果它们不加废除重新授予了该权限,仍无法访问该对象。
只有系统管理员、安全管理员和数据库的所有者或数据库对象的所有者才有对用户或数据库角色废除相应权限的权利。可以使用企业管理器或用REVOKE语句来废除以前被授予或拒绝的权限。
三、使用企业管理器管理用户帐号和权限
1.创建登录帐户时指定数据库帐户
在企业管理器中新建登录帐号后,通常可紧接着设置该帐号允许访问的数据库及相应权限—即数据库用户帐号。

上图所示“数据库访问”窗口的上半部分列出了当前服务器中的所有数据库,可以在需要建立用户帐户的数据库前面的“许可”列中打勾选择,表示要在该数据库中建立用户帐号。
默认时数据库用户帐号名与登录帐号名相同,如果不想同名,可以在该数据库后面的“用户”列中重新输入新的用户名。
在“数据库访问”窗口的下半部分,可以将该用户加入数据库角色中,默认它已是public角色的成员。
使用企业管理器 管理用户帐号和权限
