实验六 数据库的日常管理.docx
- 文档编号:23838225
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:15
- 大小:411.72KB
实验六 数据库的日常管理.docx
《实验六 数据库的日常管理.docx》由会员分享,可在线阅读,更多相关《实验六 数据库的日常管理.docx(15页珍藏版)》请在冰豆网上搜索。
实验六数据库的日常管理
第六章数据库的安全管理
在SQLServer2000中工作时,用户要经过两个安全性阶段,:
身份验证和授权(权限验证)。
如果身份验证成功,用户即可连接到SQLServer实例。
然后,用户还需要访问服务器上的授权。
权限验证阶段控制用户在SQLServer数据库中多运行进行的活动。
为便于对多用户的管理,SQLServer使用组和角色。
将用户分成组和角色可以方便同时对许多用户授予或拒绝权限。
不同用户可以通过赋予相同的角色来获得同样的访问权限,对组的安全定义适用于组中的所有成员。
6.1实验示例
6.1.1SQLServer的安全模式
SQLServer提供了3种安全管理模式,即标准模式、集成模式和混合模式,数据库设计者和数据库管理员可以根据实际情况进行选择。
标准模式时SQLServer默认的安全模式,由SQLServer独立来管理自己的数据库安全。
集成模式是将WindowsNT的安全管理集成到SQLServer之中,即用户只需要登陆到WindowsNT,就可以直接连接到SQLServer。
混合模式是指可以选择前两种安全模式的某一种进行验证。
一、设置SQLServer的安全认证模式
要设置安全认证模式,用户必须使用系统管理员帐号,可以使用企业管理器来设置安全认证模式。
1、SQLServer的安全认证模式步骤如下:
(1)右击要设置的SQL服务器,从弹出的快捷菜单中选择“属性”,
如图6-1。
(2)在弹出的“SQLServer属性”对话框中,打开“安全性”选项卡,
如图6-2。
图6-1SQL服务器的快捷菜单图6-2设置安全验证模式
(3)选中“仅Windows”或“SQLServer和Windows”单选按钮
(混合模式)。
二、添加SQLServer帐号
如果用户没有WindowsNT/2000帐号,则只能建立SQLServer帐号,可以使用企业管理器,也可以直接使用Transact-SQL语句。
1、用企业管理器添加SQLServer帐号
(1)展开服务器,选择“安全性”“登陆”项目。
(2)右击“登陆”文件夹,出现如图6-3的快捷菜单。
(3)从弹出的快捷菜单中选择“新建登陆”选项,出现如图6-4所示的对话框。
图6-3“登陆”目录的快捷菜单图6-4新建登陆属性对话框
(4)在“名称”文本框中输入一个不带反斜杠的用户名,选中“SQLServer身份验证”单选按钮,并在密码文本框中输入口令。
另外,可以通过设置服务器选项和数据库访问选项的相应内容来设置该登陆具有的访问权限。
如图6-5所示。
(5)单击“确定”按钮,出现确认密码对话框再次输入密码,单击“确定”按钮,创建完成。
图6-5设置登陆所具有的访问权限
2、用Transact-SQL命令添加SQLServer帐号
可以执行系统存储过程sp_addlogin,内容略。
三、删除SQLServer帐号
可以利用企业管理器来删除SQLServer的登陆帐号。
内容略。
6.1.2管理数据库用户
在安装SQLServer之初只有两个用户,一个是sa(系统管理员),另一个是guest(系统创建时创建的一个可以对样板数据库做最基本查询的用户)。
Sa作为系统管理员或数据库管理员,具有最高点权力。
一、添加数据库用户
1、利用企业管理器添加SQLServer用户。
(1)展开服务器,再展开要添加用户的数据库,如jxgl数据库,右击“用户”目录,从弹出的快捷菜单中选择“新建数据库用户”命令,如图6-6。
(2)打开如图6-7所示的“数据库用户属性”对话框。
图6-6新建数据库用户图6-7数据库用户属性
(3)从“登陆名”下拉列表框中选择一个登陆名,也可以创建一个新的登陆,并同时打开登陆窗口。
图6-8可以创建新的登陆
(4)在“用户名”文本框中输入用户名,默认情况下它被设置为同登陆名同名。
(5)若需要,在“数据库角色成员”列表中选中除public外地其它角色。
2、利用Transact-SQL添加用户。
可以用系统存储过程sp_granddbaccesslai添加。
内容略。
二、删除数据库用户
可以利用企业管理器和Transact-SQL语言来删除数据库用户,内容略。
6.1.3管理数据库角色
在数据库中,除了固定数据库角色外,还可以自定义数据库角色,同时根据需要,可以为数据库角色添加成员和删除自定义角色。
一、创建自定义数据库角色
1、利用企业管理器创建自定义数据库角色
(1)展开服务器,再展开要添加用户的数据库,如jxgl_1数据库,右击“角色”目录,
(2)弹出的快捷菜单中选择“新建数据库角色”命令。
(3)打开如图所示的“数据库用户属性”对话框,在“名称”文本框中输入数据库新角色的名称,如newroles,并选中“标准角色”单选按钮,如图6-9。
(4)可以为角色添加用户或其它角色(仅限于自定义角色),若不添加,则创建一个暂无成员的角色。
单击对话框中的“添加”按钮,出现“添加角色成员”对话框,如图6-10。
(5)选择要添加的用户,单击“确定”按钮,完成角色创建。
图6-9创建数据库角色对话框
图6-10“添加角色成员”
2、利用Transact-SQL添加数据库角色
内容略。
二、删除数据库角色
可以利用企业管理器或Transact-SQL语言来删除数据库角色,内容略。
6.2权限管理
在SQLServer上权限管理分为语句权限管理和对象权限管理两类。
语句权限管理是对用户执行语句或命令的权限管理;对象权限管理是系统管理员、数据库拥有者对数据库及其对象的操作权限的控制。
一、利用企业管理器管理权限
1、利用企业管理器管理语句权限
(1)展开服务器,再展开要修改权限的数据库,如jxgl数据库,从弹出的快捷菜单中选
(2)择“属性”命令,如图6-11,打开jgxl属性对话框。
(3)单击“权限”标签,打开如图6-12所示的权限选项卡。
(4)如图6-13所示,权限选项卡中列出了数据库中所有的用户和角色,以及私有的语句权限,可以单击用户或角色于与权限交叉点商店方框来改变用户或角色的授权状态,这些权限主要是创建表、视图等的创建权限。
(5)设置完毕后,单击“确定”按钮使设置生效。
图6-11jxgl数据库属性对话框图6-12jxgl数据库“权限”对话框
图6-13对用户/角色设置语句权限
2、利用企业管理器管理对象权限
(1)展开服务器,再展开要进行角色对象权限管理的数据库,如jxgl_1数据库,选择“角色”目录,在右边窗口的角色列表中双击newrole角色,打开如图6-14所示的对话框。
(2)单击“权限”标签,打开如图6-15所示的“权限”对话框,其中列出了数据库中所有的对象和这些对象可以执行的操作,通过在对象与权限交叉点打勾来选中,给角色newrole授予相应的权限即可,这些权限包括对表和视图的检索、插入、更新、删除权限以及对存储过程等数据库对象的执行权限。
(3)单击“列”按钮,可以在弹出的对话框中指定对列操作的权限,如图6-16所示。
(4)设置完毕后,单击“确定”按钮使设置生效。
图6-14newrole角色属性对话框图6-15角色newrole具有的权限
图6-16设置列上操作权限
数据控制指的是控制用户对数据的存储权利,是由DBA来决定的。
DBMS数据控制具有如下功能:
Ø通过GRANT和REVORK将授权通知系统,并存入系统。
Ø当用户提出请求时,根据授权情况检查是否执行操作请求。
Ø数据库对象的属主(创建者)拥有该对象上的全部操作权限。
Ø授权(GRANT)即是将对指定操作对象的指定操作权限授予指定的用户。
Ø授权定义由DBA或对象的属主实施。
6.2.1授权语句GRANT
GRANT语句的一般格式:
GRANT<权限>[,<权限>]...
[ON<对象类型><对象名>]
TO<用户>[,<用户>]...
[WITHGRANTOPTION];
WITHGRANTOPTION允许获得授权的用户将权限再授给其他用户。
提示:
在进行下面的操作前,应以Windows系统管理员或SA的身份登陆教学管理数据库jxgl,然后利用实验3当中讲述的方法创建用户U1~U7
例1把查询和更新学生表Student的权限授予所有用户。
GRANTSELECT,UPDATE
ONTABLEStudent
TOPUBLIC;
例2把查询学生表的权限授给用户U1。
GRANTSELECT
ONTABLEStudent
TOU1;
例3把对学生表和课程表的全部权限授予用户U2和U3。
GRANTALLPRIVILIGES
ONTABLEStudent,SC
TOU2,U3;
例4把查询学生表和修改学生学号的权限授给用户U4
GRANTSELECT,UPDATE(Sno)
ONTABLEStudent
TOU4;
例5:
把对选修表的INSERT权限授予U5用户,并允许他再将此权限授予其他用户。
GRANTINSERT
ONTABLESC
TOU5
WITHGRANTOPTION;
执行例5后,U5不仅拥有了对选修表的INSERT权限,他还可以执行下列语句传播此权限给U6,并允许U6继续传播此权限:
GRANTINSERT
ONTABLESC
TOU6
WITHGRANTOPTION;
同样,U6还可以执行下列语句将此权限授予U7:
GRANTINSERT
ONTABLESC
TOU7;
但U7不能再传播此权限。
选修表的属主或DBA→U5→U6→U7。
6.2.2收权语句REVOKE
收回指定用户对指定对象的指定操作权限。
REVOKE语句的一般格式为:
REVOKE<权限>[,<权限>]...
[ON<对象类型><对象名>]
FROM<用户>[,<用户>]...
[CASCADE|RESTRICT];
CASCADE:
收回用户权限时,同时收回他直接或间接转授的权限。
RESTRICT:
如果该用户还转授了该权限则拒绝执行。
大多系统缺省为RESTRICT,但也有系统缺省为CASCADE。
例6收回所有用户对学生表的查询权限。
REVOKESELECT
ONTABLEStudent
FROMPUBLIC;
例7收回用户U5对选修表的INSERT权。
REVOKEINSERT
ONTABLESC
FROMU5
CASCADE;
例8收回U4对学生表学号列的修改权限。
REVOKEUPDATE(Sno)
ONTABLEStudent
FROMU4;
SQL灵活的授权机制
DBA拥有对数据库中所有对象的所有权限,并可以根据应用的需要将不同的权限授予不同的用户。
用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。
被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。
所有授予出去的权力在必要时又都可以用REVOKE语句收回。
实验六数据库安全管理
一、实验目的
Ø实践SQLServer2000的安全机制
Ø掌握SQLServer2000中有关用户、角色及操作权限的管理方法
二、实验内容
一、创建数据库登陆账号
要求:
1.打开企业管理器,新建登陆帐号为newlogin,默认数据库为jxgl,数据库访问选jxgl。
2.以newlogin登陆企业管理器,方法为在实例名上单击鼠标右键选择“编辑SQLServer注册属性”,进入jxgl数据库,看看能否创建表、删除表和查询表。
3.以sa登陆,设置newlogin为访问jxgl数据库的db_owner。
4.以newlogin登陆,看看能否创建表、删除表和查询表。
二、创建数据库用户帐户,数据库角色
要求:
1.使用企业管理器创建数据库jxgl的用户newuser,对应的登陆帐户为newlogin。
2.使用企业管理器创建数据库jxgl的角色newrole,并为其添加用户newuser。
另外,再创建一个角色newrole2。
3.设置用户newuser为角色newrole2的角色成员。
4.使用企业管理器方式,设置语句访问权限和对象访问权限。
使用户newuser可以具有建库和建表的权限;使用户newuser可以对Student表进行insert和update操作并禁止进行delete操作。
5.使用Transact-SQL方式,设置语句访问权限和对象访问权限。
使用户newuser可以具有建视图的权限,收回对表Student建库的权限;使用户newuser可以对Student表进行delete操作的权限,收回用户newuser对Student表进行select操作的权限。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验六 数据库的日常管理 实验 数据库 日常 管理