第11章 数据库的安全管理_第1页
第11章 数据库的安全管理_第2页
第11章 数据库的安全管理_第3页
第11章 数据库的安全管理_第4页
第11章 数据库的安全管理_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第11章章 数据库的安全管理数据库的安全管理 本章内容本章内容11.1 SQL Server 的安全机制的安全机制11.2 登录账号管理登录账号管理11.3 数据库用户的管理数据库用户的管理11.4 角色管理角色管理11.5 权限管理权限管理11.1 SQL Server 的安全机制的安全机制第第1111章章 数据库的安全管理数据库的安全管理 11.1.1 身份验证身份验证11.1.2 身份验证模式的设置身份验证模式的设置11.1.1 身份验证身份验证11.1 SQL Server 11.1 SQL Server 的安全机制的安全机制nSQL Server的安全性管理是建立在的安全性管理是建

2、立在身份验证身份验证和和访访问许可问许可两者机制上的。两者机制上的。n身份验证是确定登录身份验证是确定登录SQL Server的用户的登录账的用户的登录账号和密码是否正确,以此来验证其是否具有连接号和密码是否正确,以此来验证其是否具有连接SQL Server的权限。的权限。n通过认证的用户必须获取访问数据库的权限,才通过认证的用户必须获取访问数据库的权限,才能对数据库进行权限许可下的操作。能对数据库进行权限许可下的操作。SQL Server身份验证模式身份验证模式 11.1.1 11.1.1 身份验证身份验证(1)Windows身份验证模式身份验证模式n该模式使用该模式使用Windows操作系

3、统的安全机制操作系统的安全机制验证用户身份,只要用户能够通过验证用户身份,只要用户能够通过Windows用户账号验证,即可连接到用户账号验证,即可连接到SQL Server而不再进行身份验证。而不再进行身份验证。n这种模式只适用于能够提供有效身份验证这种模式只适用于能够提供有效身份验证的的Windows操作系统。操作系统。 (2)混合身份验证模式混合身份验证模式11.1.1 11.1.1 身份验证身份验证n在该模式下,在该模式下,Windows身份验证和身份验证和SQL server验证两种模式都可用。对于可信任连验证两种模式都可用。对于可信任连接用户接用户(由由Windows验证验证),系统

4、直接采用,系统直接采用Windows的身份验证机制,否则的身份验证机制,否则SQL Server将通过账号的存在性和密码的匹配性将通过账号的存在性和密码的匹配性自行进行验证,即采用自行进行验证,即采用SQL Server身份验身份验证模式。证模式。 11.1.2 身份验证模式的设置身份验证模式的设置 11.1.1 11.1.1 身份验证身份验证n在该模式下,在该模式下,Windows身份验证和身份验证和SQL server验证两种模式都可用。对于可信任连验证两种模式都可用。对于可信任连接用户接用户(由由Windows验证验证),系统直接采用,系统直接采用Windows的身份验证机制,否则的身份

5、验证机制,否则SQL Server将通过账号的存在性和密码的匹配性将通过账号的存在性和密码的匹配性自行进行验证,即采用自行进行验证,即采用SQL Server身份验身份验证模式。证模式。 身份验证内容身份验证内容11.1.1 11.1.1 身份验证身份验证n包括确认用户的账号是否有效、能否访问包括确认用户的账号是否有效、能否访问系统、能访问系统的哪些数据库。系统、能访问系统的哪些数据库。11.1.2 身份验证模式的设置身份验证模式的设置 11.1 SQL Server 11.1 SQL Server 的安全机制的安全机制1.方法一:打开方法一:打开SQL Server管管理平台,在理平台,在“

6、已注册的服务已注册的服务器器”子窗口中设置验证模式。子窗口中设置验证模式。n2方法二方法二n在在SQL Server管理平台的对管理平台的对象资源管理器象资源管理器中,右键单击中,右键单击服务器,在弹服务器,在弹出的快捷菜单出的快捷菜单中选择中选择“属属性性”,打开如,打开如图所示的图所示的“服服务器属性务器属性”窗窗口。口。11.1.2 11.1.2 身份验证模式的设置身份验证模式的设置11.2 登录账号管理登录账号管理第第1111章章 数据库的安全管理数据库的安全管理 11.2.1 创建登录账户创建登录账户11.2.2 修改登录账户修改登录账户11.2.3 删除登录账户删除登录账户11.2

7、 11.2 登录账号管理登录账号管理11.2.1 创建登录账户创建登录账户n创建登录账户的方法有两种:创建登录账户的方法有两种:一种是从一种是从Windows用户或组中创建登录账户用户或组中创建登录账户一种是创建新的一种是创建新的SQL Server登录账户。登录账户。11.2.1 11.2.1 创建登录账户创建登录账户1. 通过通过Windows身份验证创建登录身份验证创建登录 (1)创建创建Windows用户用户以管理员身份登录到以管理员身份登录到Windows 2003,选,选择择“开始开始程序程序管管理工具理工具计算机管理计算机管理”选项选项 。 11.2.1 11.2.1 创建登录账

8、户创建登录账户展开展开“本地用户和组本地用户和组”文文件夹,选择件夹,选择“用户用户”图标,图标,单击鼠标右键,在快捷菜单击鼠标右键,在快捷菜单中选择单中选择“新用户新用户”项,项,打开打开“新用户新用户”对话框,对话框,输入用户名、密码,单击输入用户名、密码,单击“创建创建”按钮,然后单击按钮,然后单击“关闭关闭”按钮完成创建。按钮完成创建。11.2.1 11.2.1 创建登录账户创建登录账户(2)使用企业管理器将使用企业管理器将Windows 2003账号加入账号加入到到SQL Server中,创建中,创建SQL Server登录登录启动启动SQL Server管理平台,在对象资源管管理平

9、台,在对象资源管理器中分别展开理器中分别展开“服务器服务器”“安全安全性性”“登录名登录名”。 右击右击“登录名登录名”,在弹出的快捷菜单上选,在弹出的快捷菜单上选择择“新建登录名新建登录名”,进行,进行“登录名登录名-新建新建”对话框对话框 。11.2.1 11.2.1 创建登录账户创建登录账户在在“登录名登录名-新建新建”对对话框话框选择选择Windows验证验证模式,登录名通过单击模式,登录名通过单击“搜索搜索”按钮自动产生,按钮自动产生,单击单击“搜索搜索”按钮后出现按钮后出现“选择用户或组选择用户或组”对话框,对话框,在对象名称框中直接输入在对象名称框中直接输入名称或单击名称或单击“

10、高级高级”按钮按钮后查找用户或组名称来完后查找用户或组名称来完成输入。成输入。 11.2.1 11.2.1 创建登录账户创建登录账户单击单击“确定确定”按钮,按钮,一个一个Windows组或组或用户即可增加到用户即可增加到SQL Server登录帐登录帐户中去。户中去。 11.2.1 11.2.1 创建登录账户创建登录账户对于已经创建的对于已经创建的Windows用户或组,可以使用户或组,可以使用系统存储过程用系统存储过程sp_grantlogin授予其登录授予其登录SQL Server的权限。的权限。n其语法格式如下:其语法格式如下:sp_grantlogin loginame= login

11、 其中,其中,loginame= login 为要添加的为要添加的Windows用户或组的名称,名称格式为用户或组的名称,名称格式为“域名域名计算机名计算机名用户名用户名”。11.2.1 11.2.1 创建登录账户创建登录账户例例11-1 使用系统存储过程使用系统存储过程sp_grantlogin将将Windows用户用户huang加入加入SQL Server中。中。 EXEC sp_grantlogin CSULIB-TD1huang 或或 EXEC sp_grantlogin CSULIB-TD1huang 该操作授予了该操作授予了Windows用户用户CSULIB-TD1huang连接到

12、连接到SQL Server的权限。的权限。 11.2.1 11.2.1 创建登录账户创建登录账户EXEC sp_grantlogin BUILTINUsers该操作由于授予的是本地组中的用户,所该操作由于授予的是本地组中的用户,所以使用以使用BUILTIN关键字代替域名和计算机关键字代替域名和计算机名。名。例例11-2 授予本地组授予本地组Users中的所有用户连接中的所有用户连接SQL Server的权限。的权限。11.2.1 11.2.1 创建登录账户创建登录账户n如果使用混合验证模式或不通过如果使用混合验证模式或不通过Windows用户或用户组连接用户或用户组连接SQL Server,则

13、需要在,则需要在SQL Server下创建用户登录权限,使用户下创建用户登录权限,使用户得以连接使用得以连接使用SQL Server身份验证的身份验证的SQL Server实例。实例。2. 创建创建SQL Server登录登录11.2.1 11.2.1 创建登录账户创建登录账户 在在SQL Server管理平台中创建管理平台中创建SQL Server登录帐户的具体步骤类似于登录帐户的具体步骤类似于“将将Windows 2003帐号映射到帐号映射到SQL Server中中”的操作方法。的操作方法。 只是要选择只是要选择SQL Server验证模式,并输入登验证模式,并输入登录帐户名称、密码及确认

14、密码。其他选项卡的设录帐户名称、密码及确认密码。其他选项卡的设置操作类似,最后单击置操作类似,最后单击“确定确定”按钮,即增加了按钮,即增加了一个新的登录帐户。一个新的登录帐户。 (1)使用SQL Server管理平台创建登录帐户 11.2.1 11.2.1 创建登录账户创建登录账户(2)使用系统存储过程使用系统存储过程sp_addlongin创建登录创建登录sp_addlogin语法格式如下:语法格式如下:sp_addlogin loginame= login, passwd= password , defdb= database, deflanguage= language , sid=s

15、id, encryptopt= encryption_option 11.2.1 11.2.1 创建登录账户创建登录账户EXEC sp_addlogin ZG002,002,Sales例例11-3 使用系统存储过程使用系统存储过程sp_addlongin创建登录,创建登录,新登录名为新登录名为“ZG002”,密码为,密码为“002”默认数据库为默认数据库为“Sales”。11.2.1 11.2.1 创建登录账户创建登录账户EXEC sp_addlogin ZG002,002,Sales例例11-3 使用系统存储过程使用系统存储过程sp_addlongin创建登录,创建登录,新登录名为新登录名为

16、“ZG002”,密码为,密码为“002”默认数据库为默认数据库为“Sales”。11.2.1 11.2.1 创建登录账户创建登录账户EXEC sp_addlogin ZG003该操作为用户该操作为用户ZG003创建一个创建一个SQL Server登录名,没有指定密码和默认数据库,使登录名,没有指定密码和默认数据库,使用默认密码用默认密码NULL和默认数据库和默认数据库master。例例11-4 创建没有密码和默认数据库的登录,创建没有密码和默认数据库的登录,登录名为登录名为“ZG003”。 11.2.1 11.2.1 创建登录账户创建登录账户n创建了登录账户后,如果需要确定用户是创建了登录账户

17、后,如果需要确定用户是否有连接否有连接SQL Server实例的权限,以及可实例的权限,以及可以访问哪些数据库的信息时,可以使用系以访问哪些数据库的信息时,可以使用系统存储过程统存储过程sp_helplogins查看。查看。nsp_helplogins的语法格式如下:的语法格式如下:sp_helplogins LoginNamePattern= login3. 查看用户查看用户11.2.1 11.2.1 创建登录账户创建登录账户例例11-5 查看账户信息。查看账户信息。EXEC sp_helplogins ZG002该操作查询有关登录该操作查询有关登录ZG002的信息的信息11.2 11.2

18、登录账号管理登录账号管理 sp_password的语法格式为:的语法格式为:sp_password old=old_password,new=new_password , loginame=loginsp_defaultdb的语法格式为:的语法格式为:sp_defaultdb logname= login, defdb=databasessp_defaultlanguage的语法格式为:的语法格式为:sp_defaultlanguage loginame=login , language=language11.2.2 修改登录账户修改登录账户11.2 11.2 登录账号管理登录账号管理 【例【

19、例11-6】 给例给例11-4创建的登录创建的登录ZG003添加密码,修改默添加密码,修改默认数据库设置为认数据库设置为Sales。 EXEC sp_password NULL,123,ZG003 EXEC sp_defaultdb master,Sales 该操作为登录该操作为登录ZG003添加密码添加密码123,默认连接数据库为,默认连接数据库为Sales。 修改登录账户修改登录账户11.2 11.2 登录账号管理登录账号管理 11.2.3 删除登录账户删除登录账户 当某一登录帐户不再使用时,应该将其删除,以保证数据库的安全性和保密性。删除登录帐户可以通过管理平台和Transact-SQL

20、语句来进行。 1使用使用SQL Server管理平台删除登录管理平台删除登录 其操作步骤如下:(1)启动SQL Server管理平台,在对象资源管理器中分别展开“服务器”“安全性”“登录名”。(2)在“登录名”详细列表中鼠标右键单击要删除的用户,在弹出的快捷菜单中选择“删除”命令,确定删除。 11.2 11.2 登录账号管理登录账号管理 n删除登录账号有两种形式:删除Windows用户或组登录和删除SQL Server登录。(1)删除删除Windows用户或组登录用户或组登录sp_revokelogin的语法格式为:sp_revokelogin liginame=login其中,liginam

21、e=login为Windows用户或组的名称。2. 使用使用Transact-SQL语句删除登录账号语句删除登录账号11.2 11.2 登录账号管理登录账号管理 EXEC sp_revokelogin CSULIB-TD1huangEXEC sp_revokelogin CSULIB-TD1huang或或EXEC sp_revokelogin CSULIB-TD1huangEXEC sp_revokelogin CSULIB-TD1huang例例11-7 11-7 使用系统存储过程使用系统存储过程sp_revokeloginsp_revokelogin删除例删除例11-111-1创建的创建的W

22、indowsWindows用户用户CSULIB-TD1huang CSULIB-TD1huang 的登的登录账号录账号11.2 11.2 登录账号管理登录账号管理 n使用使用sp_droplogin可以删除可以删除SQL Server登录。其登录。其语法格式如下:语法格式如下:sp_droplogin loginame= loginn例例11-8 使用系统存储过程使用系统存储过程sp_droplogin删除删除SQL Server登录账号登录账号ZG001。EXEC sp_droplogin ZG001(2)删除删除SQL Server登录登录11.3 数据库用户的管理数据库用户的管理 第第1

23、111章章 数据库的安全管理数据库的安全管理 1使用使用SQL Server管理平台创建数据库用管理平台创建数据库用户户 n其操作步骤如下:其操作步骤如下:(1)打开SQL Server管理平台,在其“对象资源管理器”面板中依次展开“服务器”“数据库”“安全性”节点。右击选择其下的“用户”对象,在打开的菜单中选择“新建用户”命令,打开的“数据库用户-新建”窗口。 11.3 11.3 数据库用户的管理数据库用户的管理n(2)在打开的“数据库用户-新建”窗口中,单击“登录名”右边的“”命令可搜索登录用户或直接在文本框中输入用户的登录名,在用户名栏中输入用户名称,用户名可以与登录名不一样。n(3)在

24、“此用户拥有的架构”和“数据库角色成员身份”区域选择此用户拥有的架构和加入的角色,选中角色名前的复选框即可。n(4)单击“新建用户”窗口的“确定”按钮,数据库用户建立完成。 2. 使用系统存储过程创建数据库用户使用系统存储过程创建数据库用户nSQL Server使用系统存储过程使用系统存储过程sp_grantdbaccess为数据库添加用户,其语为数据库添加用户,其语法格式如下:法格式如下:sp_grantdbaccess loginame= login , name_in_db= name_in_db OUTPUT11.3 11.3 数据库用户的管理数据库用户的管理EXEC sp_grant

25、dbaccess ZG002例例11-9 使用系统存储过程在当前数据库中增使用系统存储过程在当前数据库中增加一个用户。加一个用户。11.3 11.3 数据库用户的管理数据库用户的管理(1)使用)使用SQL Server管理平台删除数据库用户管理平台删除数据库用户 打开打开SQL Server管理平台,在其管理平台,在其“对象资源管理器对象资源管理器”面板中依次展开面板中依次展开“服务器服务器”“数据库数据库”“安全安全性性”“用户用户”节点。右击选择要删除的数据库用户,节点。右击选择要删除的数据库用户,在弹出菜单中选择在弹出菜单中选择“删除删除”项,则从当前数据库中删项,则从当前数据库中删除该

26、数据库用户。除该数据库用户。(2)使用系统存储过程删除数据库用户)使用系统存储过程删除数据库用户 sp_revokedbaccess的语法格式为:的语法格式为:sp_revokedbaccess name_in_db=name3. 删除数据库中的用户或组删除数据库中的用户或组11.3 11.3 数据库用户的管理数据库用户的管理EXEC sp_revokedbaccess ZG002例例11-10 使用系统存储过程在当前数据库中使用系统存储过程在当前数据库中删除指定的用户。删除指定的用户。11.3 11.3 数据库用户的管理数据库用户的管理11.4 角色管理角色管理 第第1111章章 数据库的安

27、全管理数据库的安全管理 11.4.1 SQL Server角色的类型角色的类型11.4.2 固定服务器角色管理固定服务器角色管理11.4.3 数据库角色管理数据库角色管理11.4.4 用户定义数据库角色用户定义数据库角色11.4 11.4 角色管理角色管理11.4.1 SQL Server角色的类型角色的类型SQL Server中有两种角色类型:固定角色和用户中有两种角色类型:固定角色和用户定义数据库角色。定义数据库角色。1. 固定角色固定角色n固定角色分为固定角色分为固定服务器角色:独立于各个数据库,具有固定的权固定服务器角色:独立于各个数据库,具有固定的权限。限。固定数据库角色:是指角色所

28、具有的管理、访问数据固定数据库角色:是指角色所具有的管理、访问数据库权限已被库权限已被SQL Server定义,并且定义,并且SQL Server管理者管理者不能对其所具有的权限进行任何修改。不能对其所具有的权限进行任何修改。 11.4.1 SQL Server11.4.1 SQL Server角色的类型角色的类型表11-1 固定服务器角色11.4.1 SQL Server11.4.1 SQL Server角色的类型角色的类型表11-2 固定数据库角色11.4.1 SQL Server11.4.1 SQL Server角色的类型角色的类型2. 用户定义数据库角色用户定义数据库角色n当某些数据库

29、用户需要被设置为相同的权限,但是这些权当某些数据库用户需要被设置为相同的权限,但是这些权限不同于固定数据库角色所具有的权限时,就可以定义新限不同于固定数据库角色所具有的权限时,就可以定义新的数据库角色来满足这一要求,从而使这些用户能够在数的数据库角色来满足这一要求,从而使这些用户能够在数据库中实现某一特定功能。据库中实现某一特定功能。n用户定义数据库角色的优点是:用户定义数据库角色的优点是:SQL Server数据库角色可数据库角色可以包含以包含Windows用户组或用户;同一数据库的用户可以具用户组或用户;同一数据库的用户可以具有多个不同的用户定义角色,这种角色的组合是自由的,有多个不同的用

30、户定义角色,这种角色的组合是自由的,而不仅仅是而不仅仅是public与其他一种角色的结合;角色可以进行与其他一种角色的结合;角色可以进行嵌套,从而在数据库中实现不同级别的安全性。嵌套,从而在数据库中实现不同级别的安全性。11.4.2 固定服务器角色管理固定服务器角色管理 11.4 11.4 角色管理角色管理n固定服务器角色不能进行添加、删除或修固定服务器角色不能进行添加、删除或修改等操作,只能将用户登录添加为固定服改等操作,只能将用户登录添加为固定服务器角色的成员。务器角色的成员。1. 添加固定服务器角色成员添加固定服务器角色成员 11.4.2 11.4.2 固定服务器角色管理固定服务器角色管

31、理(1)打开)打开SQL Server管理平台。管理平台。 (2)在要添加或删除成员的某固定服务器角色上单击鼠)在要添加或删除成员的某固定服务器角色上单击鼠标右键,选择快捷菜单的标右键,选择快捷菜单的“属性属性”菜单项。菜单项。 (3)在)在“服务器角色属性服务器角色属性”窗口中能方便的单击窗口中能方便的单击“添加添加”和和“删除删除”按钮实现对成员的添加和删除。按钮实现对成员的添加和删除。 例例11-11使用使用SQL Server管理平台将登录管理平台将登录ZG001添添加为固定服务器角色加为固定服务器角色Database Creators成员。成员。 11.4.2 11.4.2 固定服务

32、器角色管理固定服务器角色管理固定服务器角色成员的添加也可以固定服务器角色成员的添加也可以从从“安全性安全性”的的“登录登录”项实现项实现 11.4.2 11.4.2 固定服务器角色管理固定服务器角色管理sp_addsrvrolemember用于添加固定服务器角用于添加固定服务器角色成员色成员n语法格式为:语法格式为:sp_addsrvrolemember loginame= login, rolename= role11.4.2 11.4.2 固定服务器角色管理固定服务器角色管理EXEC sp_addsrvrolemember ZG002,sysadmin例例11-12 使用系统存储过程将登录

33、使用系统存储过程将登录ZG002添加添加为固定服务器角色为固定服务器角色sysadmin的成员。的成员。11.4.2 11.4.2 固定服务器角色管理固定服务器角色管理n删除固定服务器角色成员的语句是删除固定服务器角色成员的语句是sp_dropsrvrolemember,其语法格式为:,其语法格式为:sp_dropsrvrolemember loginame= login, rolename= role2. 删除固定服务器角色成员删除固定服务器角色成员11.4.2 11.4.2 固定服务器角色管理固定服务器角色管理EXEC sp_dropsrvrolemember ZG002,sysadmin

34、例例11-13 使用系统存储过程从固定服务器角使用系统存储过程从固定服务器角色色sysadmin中删除登录中删除登录ZG002。11.4.2 11.4.2 固定服务器角色管理固定服务器角色管理n使用使用sp_helpsrvrole、sp_helpsrvrolemember可了可了解有关固定服务器角色及其成员的信息。解有关固定服务器角色及其成员的信息。n查看固定服务器角色查看固定服务器角色sp_helpsrvrole的语法格式为:的语法格式为:sp_helpsrvrole srvrolename= role srvrolename= role为固定服务器角色名称为固定服务器角色名称3. 查看固定

35、服务器角色信息查看固定服务器角色信息11.4.2 11.4.2 固定服务器角色管理固定服务器角色管理语法格式为:语法格式为:sp_helpsrvrolemember srvrolename= role sp_helpsrvrolemember查看固定服务器角色查看固定服务器角色成员成员11.4.2 11.4.2 固定服务器角色管理固定服务器角色管理EXEC sp_helpsrvrole sysadminGOEXEC sp_helpsrvrolemember sysadmin例例11-14 查看固定服务器角色查看固定服务器角色sysadmin及其及其成员的信息。成员的信息。1. 添加数据库角色成

36、员添加数据库角色成员使用系统存储过程使用系统存储过程sp_addrolemember向数向数据库角色中添加成员,其语法格式为:据库角色中添加成员,其语法格式为:sp_addrolemember rolename= role, membername= security_account11.4.3 数据库角色管理数据库角色管理11.4 11.4 角色管理角色管理USE SalesGOEXEC sp_grantdbaccess csulib-td1xh001, xh001GOEXEC sp_addrolemember db_ddladmin, xh00111.4.3 11.4.3 数据库角色管理数据

37、库角色管理例例11-15 向数据库向数据库Sales添加添加Windows用户用户“csulib-td1xh001”。11.4.3 11.4.3 数据库角色管理数据库角色管理EXEC sp_addrolemember db_owner, ZG002例例11-16 向数据库添加例向数据库添加例11-3创建的创建的SQL Server用户用户ZG002为为db_owner角色成员。角色成员。11.4.3 11.4.3 数据库角色管理数据库角色管理n使用使用sp_droprolemember删除当前数据库角删除当前数据库角色中的成员,其语法格式为:色中的成员,其语法格式为:sp_droproleme

38、mber rolename= role, membername= security_account2. 删除数据库角色成员删除数据库角色成员11.4.3 11.4.3 数据库角色管理数据库角色管理EXEC sp_droprolemember db_owner, ZG002例例11-17 删除数据库角色中的用户。删除数据库角色中的用户。11.4.3 11.4.3 数据库角色管理数据库角色管理n查看数据库角色及其成员的信息可以使用系统存查看数据库角色及其成员的信息可以使用系统存储过程储过程sp_helpdbfixedrole、sp_helprole和和sp_helpusersp_helpdbfix

39、edrole的语法格式为:的语法格式为:sp_helpdbfixedrole rolename= role sp_helprole的语法格式为:的语法格式为:sp_helprole rolename= role sp_helpuser的语法格式为:的语法格式为:sp_helpuser name_in_db= security_account3. 查看数据库角色及其成员信息查看数据库角色及其成员信息11.4.3 11.4.3 数据库角色管理数据库角色管理例例11-18 查看当前数据库中所有用户及查看当前数据库中所有用户及db_owner数据库角色的信息。数据库角色的信息。EXEC sp_help

40、userEXEC sp_helpdbfixedrole db_owner11.4.4 用户定义数据库角色用户定义数据库角色1. 创建和删除用户定义数据库角色创建和删除用户定义数据库角色创建和删除用户定义数据库角色可以使用创建和删除用户定义数据库角色可以使用SQL Server管理平台和系统存储过程实现。管理平台和系统存储过程实现。11.4 11.4 角色管理角色管理11.4.4 11.4.4 用户定义数据库角色用户定义数据库角色使用使用sp_addrole和和sp_droprole可以可以创建和删除用户定义数据库角色创建和删除用户定义数据库角色其语法格式分别为:其语法格式分别为:nsp_add

41、role rolename= role , ownername= owner nsp_droprole rolename= role11.4.4 11.4.4 用户定义数据库角色用户定义数据库角色Use SalesGOEXEC sp_addrole role01例例11-19 使用系统存储过程创建名为使用系统存储过程创建名为“role01”的用户定义数据库角色到的用户定义数据库角色到Sales数据库中。数据库中。11.4.4 11.4.4 用户定义数据库角色用户定义数据库角色USE SalesGOEXEC SP_droprole role01例例11-20 使用系统存储过程删除数据库使用系统存

42、储过程删除数据库Sales中名为中名为“role01”的用户定义数据库角色。的用户定义数据库角色。11.4.4 11.4.4 用户定义数据库角色用户定义数据库角色n添加和删除用户定义数据库角色成员可以添加和删除用户定义数据库角色成员可以使用使用SQL Server管理平台和系统存储过程管理平台和系统存储过程来完成。来完成。2. 添加和删除用户定义数据库角色成员添加和删除用户定义数据库角色成员11.4.4 11.4.4 用户定义数据库角色用户定义数据库角色(1)在)在SQL Server管理平台中添管理平台中添加或删除数据库角色成员加或删除数据库角色成员 n方法一:在上面提到过的某数据库角色的方

43、法一:在上面提到过的某数据库角色的“数据库角色数据库角色属性属性”对话框中,在对话框中,在“常规常规”选项卡上,右下角成员操选项卡上,右下角成员操作区,单击作区,单击“添加添加”或或“删除删除”按钮实现操作。按钮实现操作。n方法二:通过方法二:通过“对象资源管理器对象资源管理器”“数据库服务数据库服务器器”“数据库数据库”“某具体数据库某具体数据库”“安全性安全性”“用用户户”“某具体用户某具体用户”上单击鼠标右键,在弹出的快捷菜上单击鼠标右键,在弹出的快捷菜单选择单选择“属性属性”,出现,出现“数据库用户数据库用户”对话框,在右下对话框,在右下角成员操作区,通过多选按钮直接实现为该用户从某个

44、角成员操作区,通过多选按钮直接实现为该用户从某个或某些数据库角色中添加或删除。或某些数据库角色中添加或删除。 11.4.4 11.4.4 用户定义数据库角色用户定义数据库角色(2)使用)使用Transact-SQL添加或删添加或删除数据库角色成员除数据库角色成员 例例11-21 使用系统存储过程将使用系统存储过程将ZG002添加为添加为Sales数据库的数据库的role01角色的成员。角色的成员。USE SalesGOEXEC sp_addrolemember role01,ZG00211.4.4 11.4.4 用户定义数据库角色用户定义数据库角色USE SalesGOEXEC sp_gran

45、tdbaccess ZG003,ZG003EXEC sp_addrolemember role01,ZG003例例11-22 将将SQL Server登录账号登录账号“ZG003”添添加到加到Sales数据库中,其用户名为数据库中,其用户名为“ZG003”,然后再将然后再将ZG003添加为该数据库的添加为该数据库的role01角色角色的成员。的成员。11.5 权限管理权限管理 第第1111章章 数据库的安全管理数据库的安全管理 11.5.1 权限的种类权限的种类11.5.2 授予权限授予权限11.5.3 禁止与撤消权限禁止与撤消权限11.5.4 查看权限查看权限 11.5.1 权限的种类权限的

46、种类11.5 11.5 权限管理权限管理n权限是指用户对数据库中对象的使用及操作的权权限是指用户对数据库中对象的使用及操作的权利,当用户连接到利,当用户连接到SQL Server实例后,该用户要实例后,该用户要进行的任何涉及修改数据库或访问数据的活动都进行的任何涉及修改数据库或访问数据的活动都必须具有相应的权限,也就是用户可以执行的操必须具有相应的权限,也就是用户可以执行的操作均由其被授予的权限决定。作均由其被授予的权限决定。nSQL Server中的权限包括中的权限包括3种类型:对象权限、语种类型:对象权限、语言权限和隐含权限。言权限和隐含权限。1. 对象权限对象权限 11.5.1 11.5

47、.1 权限的种类权限的种类n对象权限用于用户对数据库对象执行操作对象权限用于用户对数据库对象执行操作的权力,即处理数据或执行存储过程的权力,即处理数据或执行存储过程(INSERT、UPDATE、DELETE、EXECUTE等等)所需要的权限,这些数据库所需要的权限,这些数据库对象包括表、视图、存储过程。对象包括表、视图、存储过程。表表11-3 对象及作用的操作对象及作用的操作 11.5.1 11.5.1 权限的种类权限的种类2. 语句权限语句权限n语句权限主要指用户是否具有权限来执行语句权限主要指用户是否具有权限来执行某一语句,这些语句通常是一些具有管理某一语句,这些语句通常是一些具有管理性的

48、操作,如创建数据库、表、存储过程性的操作,如创建数据库、表、存储过程等。这种语句虽然也包含有操作等。这种语句虽然也包含有操作(如如CREATE)的对象,但这些对象在执行该语的对象,但这些对象在执行该语句之前并不存在于数据库中,所以将其归句之前并不存在于数据库中,所以将其归为语句权限范畴。为语句权限范畴。 11.5.1 11.5.1 权限的种类权限的种类表11-4 语句权限及其作用 11.5.1 11.5.1 权限的种类权限的种类3. 隐含权限隐含权限n隐含权限是指系统自行预定义而不需要授权就有隐含权限是指系统自行预定义而不需要授权就有的权限,包括固定服务器角色、固定数据库角色的权限,包括固定服

49、务器角色、固定数据库角色和数据库对象所有者所拥有的权限。和数据库对象所有者所拥有的权限。n固定角色拥有确定的权限,例如固定服务器角色固定角色拥有确定的权限,例如固定服务器角色sysadmin拥有完成任何操作的全部权限,其成员拥有完成任何操作的全部权限,其成员自动继承这个固定角色的全部权限。数据库对象自动继承这个固定角色的全部权限。数据库对象所有者可以对所拥有的对象执行一切活动,如查所有者可以对所拥有的对象执行一切活动,如查看、添加或删除数据等操作,也可以控制其他用看、添加或删除数据等操作,也可以控制其他用户使用其所拥有的对象的权限。户使用其所拥有的对象的权限。 11.5.1 11.5.1 权限

50、的种类权限的种类11.5.2 授予权限授予权限1使用使用SQL Server管理平台管理平台授予用户或角色语句权限授予用户或角色语句权限 操作步骤如下:操作步骤如下:(1)打开)打开SQL Server管理平管理平台,在对象资源管理器中展台,在对象资源管理器中展开开“数据库服务器数据库服务器”“数数据库据库”。(2)在选择的数据库上(如:)在选择的数据库上(如:Sales数据库)单击鼠标右数据库)单击鼠标右键,在弹出菜单中选择键,在弹出菜单中选择“属属性性”项,打开项,打开“数据库属性数据库属性”对话框。对话框。(3)在)在“数据库属性数据库属性”对话对话框中选择框中选择“权限权限”选项卡,选

51、项卡,进行相应的语句权限设置进行相应的语句权限设置 11.5 11.5 权限管理权限管理2. 使用企业管理器授予用户或角色对象权限使用企业管理器授予用户或角色对象权限11.5.2 11.5.2 授予权限授予权限n(1)打开)打开SQL Server管理管理平台,在对象资源管理器平台,在对象资源管理器中展开中展开“数据库服务数据库服务器器”“数据库数据库”“某具某具体数据库体数据库”“表表”。n(2)选择授予权限的对象)选择授予权限的对象(如表(如表employee),单击鼠,单击鼠标右键,选择菜单标右键,选择菜单“属性属性”命令,打开命令,打开“表属性表属性”对对话框。话框。n(3)在)在“表

52、属性表属性”对话框对话框中选择中选择“权限权限”选项卡,选项卡,进行相应的语句权限设置进行相应的语句权限设置 3. 使用使用Transact-SQL语句语句GRANT授予用户或授予用户或角色权限角色权限nGRANT语句授予对象权限的语法格式为:语句授予对象权限的语法格式为:GRANT ALL PRIVILEGES | permission , n (column , n) ON table | view | ON table | view ( column , n) | ON stored_procedure | extended_procedure | ON user_defined_fun

53、ction TO security_account , n WITH GRANT OPTIONAS group | role 11.5.2 11.5.2 授予权限授予权限nGRANT授予语句权限的语法格式为:授予语句权限的语法格式为:GRANT ALL | statement ,.n TO security_account ,.n 11.5.2 11.5.2 授予权限授予权限例例11-23 使用使用GRANT语句给用户语句给用户ZG001授予授予CREATE TABLE 的权限。的权限。 USE Sales GO GRANT CREATE TABLE TO ZG001通过通过SQL Serve

54、r管理平台中管理平台中Sales数据库数据库的的“属性属性”对话框的对话框的“权限权限”选项卡,可选项卡,可以看到以看到ZG001的的“创建表创建表”被选定。被选定。 11.5.2 11.5.2 授予权限授予权限例例11-24 授予角色和用户对象权限。授予角色和用户对象权限。 USE Sales GO GRANT SELECT ON goods TO public GO GRANT INSERT,UPDATE,DELETE ON goods TO ZG001,ZG00211.5.2 11.5.2 授予权限授予权限例例11-25 在当前数据库在当前数据库Sales中给中给public角色赋角色赋

55、予对表予对表employee中中employee_id、employee_name字段的字段的SELECT权限。权限。USE SalesGOGRANT SELECT(Employee_id,Employee_name) ON EmployeeTO public 11.5.2 11.5.2 授予权限授予权限11.5.3 禁止与撤消权限禁止与撤消权限n禁止权限就是删除以前授予用户、组或角色的权禁止权限就是删除以前授予用户、组或角色的权限,禁止从其他角色继承的权限,且确保用户、限,禁止从其他角色继承的权限,且确保用户、组或角色将来不继承更高级别的组或角色的权限。组或角色将来不继承更高级别的组或角色的

56、权限。n撤消权限用于删除用户的权限,但是撤消权限是撤消权限用于删除用户的权限,但是撤消权限是删除曾经授予的权限,并不禁止用户、组或角色删除曾经授予的权限,并不禁止用户、组或角色通过别的方式继承权限。如果撤消了用户的某一通过别的方式继承权限。如果撤消了用户的某一权限并不一定能够禁止用户使用该权限,因为用权限并不一定能够禁止用户使用该权限,因为用户可能通过其他角色继承这一权限。户可能通过其他角色继承这一权限。11.5 11.5 权限管理权限管理1. 禁止权限禁止权限n禁止语句权限语句的语法格式为:禁止语句权限语句的语法格式为:DENY ALL | statement ,.n TO security

57、_account ,.n n禁止对象权限语句的语法格式为:禁止对象权限语句的语法格式为:DENY ALL PRIVILEGES | permission , . n ( column , . n ) ON table | view | ON table | view ( column , . n ) | ON stored_procedure | extended_procedure | ON user_defined_function TO security_account ,.n CASCADE 11.5.3 11.5.3 禁止与撤消权限禁止与撤消权限例例11-26 使用使用DENY语句禁

58、止用户语句禁止用户ZG002使用使用CREATE VIEW语句。语句。USE SalesGODENY CREATE VIEW TO ZG00211.5.3 11.5.3 禁止与撤消权限禁止与撤消权限例例11-27 给给pubic角色授予表角色授予表employee上的上的SELETE权限,再拒绝用户权限,再拒绝用户ZG001、ZG002的的特定权限,以使这些用户没有对特定权限,以使这些用户没有对employee表表的操作权限。的操作权限。USE SalesGOGRANT SELECT ON employee TO publicGODENY SELECT,INSERT,UPDATE,DELETE ON employee TO ZG001,ZG002GO11.5.3 11.5.3 禁止与撤消权限禁止与撤消权限2. 撤消以前授予或拒绝的权限撤消以前授予或拒绝的权限n撤消语句权限语句的语法格式为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论