第10章数据库安全管理教学目标通过本章学习,使学生掌握数据库安全管理的有关概念,掌握数据库安全管理的基本方法,根据实际需要,能够熟练地建立和管理登录帐户、数据库的用户、架构、角色和其权限设置。
重点难点SQL Server2008的安全验证方式SQL Server 登录账号管理SQL Server 数据库的安全管理10.1任务描述本章完成项目的第10个任务。
1.创建一个验证模式为“SQL Server身份验证”的登录账号stu_login,默认数据库为Student。
2.在大学生选课管理数据库Student中,完成如下操作。
(1)创建该数据库的一个用户student_user1,并与登录账号stu_login相关联。
(2)设置该用户student_user1拥有的权限:只能建立该数据库中的视图,只能查询该数据库中的所有表和视图的内容。
10.2 SQL Server 2008的身份验证模式安全帐户认证是用来确认登录SQL Server的用户的登录帐号和密码的正确性,由此来验证其是否具有连接SQL Server的权限。
SQL Server 2008提供了两种确认用户的验证模式:Windows 身份验证模式,混合身份验证模式(Windows 身份验证和SQL Server身份验证)。
1.Windows 身份验证模式SQL Server数据库系统通常运行在Windows NT / Windows 2000 / Windows 2003或其以上版本的服务器平台上,而这类Windows服务器操作系统,本身就具备管理登录、验证用户合法性的能力,因此Windows 身份验证模式正是利用了这一用户安全性和帐号管理的机制,允许SQL Server也可以使用NT的用户名和口令。
在这种模式下,用户只需要通过Windows 的验证,就可以连接到SQL Server,而SQL Server 本身也就不需要管理一套登录数据。
2. 混合身份验证模式混合身份验证模式允许用户使用Windows 服务器操作系统安全性或SQL Server 安全性连接到SQL Server,是指允许以SQL Server验证模式或者Windows验证模式对登录的用户账号进行验证。
其工作模式是:客户机的用户账号和密码首先进行SQL Server身份验证,如果通过验证,则登录成功。
否则,再进行Windows身份验证,如果通过,则登录成功。
如果都不能通过验证,则无法连接到SQL Server 服务器。
3.设置验证模式(1)启动SQL Server Management Studio,并连接到SQL Server 2008中的数据库。
在“对象资源管理器”窗口中,右击连接的SQL Server服务器名称,系统弹出快捷菜单,如图10-1所示。
图10-1设置验证模式(2)执行弹出菜单中的【属性】命令,打开“服务器属性”对话框,如图10-2所示。
图10-2“服务器属性”对话框(3)在服务器属性对话框中,选择“安全性”选择页,进入其“安全性”设置页面,在其“服务器身份验证”选项中可选择SQL Server的验证模式,还可设置其他有关选项,设置完成后单击“确定”按钮即可。
10.3 SQL Server 登录账号管理在SQL Server 2008中有两类登录账号:一类是登陆服务器的登录账号;另一类是使用数据库的用户账号。
登录账号是指能登录到SQL Server的账号,属于服务器的层面,本身并不能让用户访问服务器中的数据库,而登陆者要使用服务器中的数据库时,必须要有相应的用户账号才能使用数据库。
就如同公司门口先刷卡进入(登录服务器),然后再拿钥匙打开自己的办公室(进入数据库)一样。
用户名要在特定的数据库内创建并关联一个登录名(登录账号),当创建一个用户时,必须关联一个登录名,一个登录名只能与一个数据库用户相关联。
10.3.1创建登录账号要登录到SQL Server必须具有一个登录账号,用户可以使用系统默认的几个登录账号,也可以创建新的登录账号。
1.启动SQL Server Management Studio,并连接到SQL Server 2008中的数据库。
在“对象资源管理器”窗口中,展开“安全性”节点,右击其“登录名”节点,系统弹出快捷菜单,如图10-3所示。
图10-3 新建登录名2.在弹出菜单中,执行【新建登录名】命令,打开“登录名- 新建”对话框,如图10-4所示。
图10-4“登录名-新建”对话框3.在“登录名-新建”对话框中,在“登录名”文本框中输入新建的登录名称。
然后再选择其身份验证模式:若选择“Windows身份验证”选项,可通过单击“登录名”文本框后面的“搜索”按钮,查找并添加Windows操作系统中的用户名称;若选择“SQL Server身份验证”选项,则需在“密码”与“确认密码”文本框中输入登录时所采用的密码。
在“默认数据库”与“默认语言”下拉框中可选择新建的登录名登录SQL Server 2008后默认使用的数据库与语言。
最后单击“确定”按钮即可。
10.3.2管理登录账号启动SQL Server Management Studio,并连接到SQL Server 2008中的数据库。
在“对象资源管理器”窗口中,展开“安全性”节点,再展开其“登录名”节点,右击要操作的登录名称,系统弹出快捷菜单,如图10-5所示。
图10-5 操作登录名1.重命名登录名执行弹出菜单中的【重命名】命令。
2.删除登录名执行弹出菜单中的【删除】命令。
3.查看和修改登录名的属性执行弹出菜单中的【属性】命令,进入“登录属性”对话框,同上图10-4,在登录属性对话框中,可查看或根据需要修改登录账号的相关属性。
4.禁用登录账号执行弹出菜单中的【属性】命令,进入“登录属性”对话框,在此对话框中,选择“状态”选择页,进入登录账号的状态设置页面,如图10-6所示,在此页面中,选择“登录”项中的“禁用”选项即可。
图10-6“登录属性”对话框10.4 数据库的安全管理10.4.1数据库用户管理登录账号创建之后,用户只能通过该登录名访问整个SQL Server 2008,而不是SQL Server 2008中的数据库。
如果用户要访问SQL Server 2008中的数据库,还需要给这个用户授予访问该数据库的权限,即在所要访问的数据库中为该用户创建一个数据库用户账户。
1.创建数据库用户(1)启动SQL Server Management Studio,并连接到SQL Server 2008中的数据库。
在“对象资源管理器”窗口中,展开“数据库”节点,再展开创建用户的数据库名(如Studen t),再展开其“安全性”节点,右击其“用户”节点,系统弹出快捷菜单,如图10-7所示。
图10-7新建数据库用户(2)执行弹出菜单中的【新建用户】命令,打开“数据库用户-新建”对话框,如图10-8所示。
图10-8“数据库用户-新建”对话框(3)在“数据库用户-新建”对话框中:在“用户名”文本框中输入新建数据库用户的名称;通过“登录名”文本框后面的“…”按钮选择该数据库用户所关联的SQL Server登录账号;通过“默认架构”文本框后面的“…”按钮可设置该用户的默认架构;在“此用户拥有的架构”列表框中,可选择该用户所拥有的架构;在“数据库角色成员身份”列表框中,可选择赋予该用户什么样的数据库角色。
(4)在“数据库用户-新建”对话框中,单击“安全对象”选择页,进入“安全对象”设置页面,在此页面中,可以添加允许该数据库用户能够访问的数据库对象和设置访问这些数据库对象的相关权限。
2.管理数据库用户启动SQL Server Management Studio,并连接到SQL Server 2008中的数据库。
在“对象资源管理器”窗口中,展开“数据库”节点,再展开要操作用户所属的数据库名(比如Student),再展开其“安全性”节点,再展开其“用户”节点,右击要操作的用户名,系统弹出快捷菜单,如图10-9所示。
图10-9 操作数据库用户(1)删除数据库用户,执行弹出菜单中的【删除】命令。
(2)重命名数据库用户,执行弹出菜单中的【重命名】命令。
(3)查看和修改数据库用户的属性,执行弹出菜单中的【属性】命令,进入“数据库用户”属性对话框,在此对话框中,查看或根据需要修改数据库用户的相关属性即可,同创建数据库用户一样。
10.4.2数据库权限管理权限是针对用户而言的,若用户相对SQL Server进行某种操作,就必须具备使用该操作的权限。
权限用来指定授权用户可以使用的数据库对象和这些授权用户可以对这些数据库对象执行的操作。
用户在登录到SQL Server之后,其用户帐号所归属的Windows组或角色所被赋予的权限决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。
在每个数据库中用户的权限独立于用户帐号和用户在数据库中的角色,每个数据库都有自己独立的权限系统,在SQL Server中包括三种类型的权限:即对象权限、语句权限和预定义权限。
1.权限类型(1)对象权限表示对特定的数据库对象,即表、视图、字段和存储过程的操作权限,它决定了能对表、视图等数据库对象执行哪些操作。
对象权限有:●SELECT,INSERT,UPDATE,DELETE 语句权限可以应用到整个表或视图中●SELECT,UPDATE语句权限可以有选择地应用到表或视图中的单个列上●SELECT 权限可以应用到用户定义函数中●INSERT, DELETE 语句权限只能应用到表或视图中,但不能应用到其单个列上(2)语句权限表示对数据库的操作权限,也就是说,创建数据库或者创建数据库中的其它对象所需要的权限类型称为语句权限。
语句权限有:●C reate database:创建数据库●C reate table:创建表;●C reate view:创建视图;●C reate rule:创建规则;●C reate default:创建缺省;●C reate procedure:创建存储过程;●C reate index:创建索引;●B ackup database:备份数据库;●B ackup log:备份事务日志。
(3)预定义权限是指系统安装以后有些用户和角色不必授权就有的权限。
2.授予用户权限(1)启动SQL Server Management Studio,并连接到SQL Server 2008中的数据库。
在“对象资源管理器”窗口中,展开“数据库”节点,展开授权用户所属的数据库名(如Stud ent),展开其“安全性”节点,展开其“用户”节点,右击要授予权限的用户名称,系统弹出快捷菜单,如图10-10所示。
图10-10 授予用户权限(2)执行弹出菜单中的【属性】命令,打开“数据库用户”对话框,在该对话框中,选择“安全对象”选择页,进入其“安全对象”设置页面,如图10-11所示。