第一篇:数据库原理及应用实验报告 6
实验成绩
《数据库系统原理及应用》
实 验 报 告 六
专业班级:
计算机科学与技术
学
号:
201116910233
姓
名:
范晓曈
指导教师:
苏小玲
2013年
月
日 实验六名称:
SQL Server存储过程
一、实验内容及要求
1.使用输入参数存储过程的创建和执行
任务1:查询学生的学号、姓名、选修的课程号、课程名、课程学分,将学生所在系作为输入参数,默认值为“软件工程系”。执行此存储过程,并分别指定一些不同的输入参数值,查看执行过程。
2.修改视图
任务1:查询指定系的男生人数,其中系为输入参数,人数为输出参数。执行此存储过程,并分别指定一些不同的输入参数值,查看执行过程。
任务2:查询指定学生(姓名)在指定学期的选课门数和考试平均成绩,要求姓名和学期为输入参数,选课门数和平均成绩用输出参数返回,平均成绩保留到小数点后两位。
3.使用返回代码存储过程的创建和执行
任务1:查询指定学生(学号)的选课门数。如果指定学生不存在,则返回代码1;如果指定的学生没有选课,则返回代码2;如果指定学生有选课,则返回代码0,并用输出参数返回该学生的选课门数。
4.使用实现对数据库修改、删除和插入操作的存储过程创建和执行
任务1:删除指定学生(学号)的修课,如果指定的学生不存在,则显示提示信息“没有指定学生”;如果指定的学生没有选课,则显示提示信息“该学生没有选课”。学号为输入参数。
任务2:修改指定课程的开课学期。输入参数为:课程号和修改后的开课学期。
任务3:在course表中插入一行数据,课程号、课程名、学分、开课学期均为输入参数。课程号为C100、课程名为操作系统、学分为
4、开课学期为4,开课学期的默认值为3。如果学分大于10或者小于1,则不插入数据,并显示提示信息“学分为1~10之间的整数”。
二、实验目的
掌握存储过程的创建和执行;掌握存储过程中输入参数和输出参数的设置和使用方法。
三、实验步骤及运行结果
1.使用输入参数存储过程的创建和执行
任务1:查询学生的学号、姓名、选修的课程号、课程名、课程学分,将学生所在系作为输入参数,默认值为“软件工程系”。执行此存储过程,并分别指定一些不同的输入参数值,查看执行过程。
create procedure p_studentdept @dept char(20)='计科' as select s.sno,s.sname,c.cno,cname,s.credit from student s inner join sc on s.sno=sc.sno inner join Course c
on c.cno=sc.cno where sdept=@dept
2.修改视图
任务1:查询指定系的男生人数,其中系为输入参数,人数为输出参数。执行此存储过程,并分别指定一些不同的输入参数值,查看执行过程。
create procedure p_numberofBoy @dept char(20),@boynumber int output as select @boynumber=COUNT(*)from Student
where Ssex='男' and sdept=@dept
declare @boynumber int exec p_numberofBoy '计科' ,@boynumber output print @boynumber
declare @boynumber int exec p_numberofBoy '电信' ,@boynumber output print @boynumber
任务2:查询指定学生(姓名)在指定学期的选课门数和考试平均成绩,要求姓名和学期为输入参数,选课门数和平均成绩用输出参数返回,平均成绩保留到小数点后两位。
create proc p_studentInfo @name char(20),@semester int,@count_xk int output,@avg_sscore float output as select @count_xk=count(c.cno),@avg_sscore=Avg(sscore)from Student s join SC
on s.Sno =SC.Sno join Course c
on SC.Cno =c.Cno where s.Sname=@name and c.Semester =@semester
declare @count_xk int,@avg_grade float,@avg_sscore decimal exec p_studentInfo '范晓曈',2,@count_xk output,@avg_sscore output select @count_xk as 选课门数,@avg_sscore as平均成绩
3.使用返回代码存储过程的创建和执行
任务1:查询指定学生(学号)的选课门数。如果指定学生不存在,则返回代码1;如果指定的学生没有选课,则返回代码2;如果指定学生有选课,则返回代码0,并用输出参数返回该学生的选课门数。
create proc p_countxk @number decimal,@xk_number decimal output as if not exists(select Sno from Student where Sno=@number)return 1 else if not exists(select Sno from SC where Sno=@number)return 2 else begin select @xk_number=COUNT(sc.cno)from SC where Sno =@number return 0 End
declare @xk_number1 int exec p_countxk 201116910233,@xk_number1 output print @xk_number1
4.使用实现对数据库修改、删除和插入操作的存储过程创建和执行
任务1:删除指定学生(学号)的修课,如果指定的学生不存在,则显示提示信息“没有指定学生”;如果指定的学生没有选课,则显示提示信息“该学生没有选课”。学号为输入参数。
create proc p_delete @id numeric as if not exists(select * from Student where Sno=@id)return 1 if not exists(select * from SC where SC.Sno=@id)return 2 else return 0
declare @id numeric,@ret int exec @ret=p_delete 201116910232 if @ret =1 print '没有该学生!' if @ret =2 print '该学生没有选课!' if @ret =0 delete from SC where Sno=201116910232
declare @id numeric,@ret int exec @ret=p_delete 201116910222 if @ret =1 print '没有该学生!' if @ret =2 print '该学生没有选课!' if @ret =0 delete from SC where Sno=201116910222
declare @id numeric,@ret int exec @ret=p_delete 201116910211 if @ret =1 print '没有该学生!' if @ret =2 print '该学生没有选课!' if @ret =0 delete from SC where Sno=201116910211
任务2:修改指定课程的开课学期。输入参数为:课程号和修改后的开课学期。
create proc p_alter @kc char(20),@xq int as update course set semester=@xq where cno=@kc declare @kc char(20),@xq int exec p_alter 'C003',3
修改前:
修改后:
任务3:在course表中插入一行数据,课程号、课程名、学分、开课学期均为输入参数。课程号为C100、课程名为操作系统、学分为
4、开课学期为4,开课学期的默认值为3。如果学分大于10或者小于1,则不插入数据,并显示提示信息“学分为1~10之间的整数”。
create proc p_insert @kc_id varchar(20),@kc_name varchar(20),@xf decimal , @xq int as if(@xf >= 1 and @xf <=10)begin insert course(cno,cname,credit,semester)values(@kc_id,@kc_name,@xf,@xq)
end else print
'学分要在1~10之间!!'
declare @kc_id varchar(20),@kc_name varchar(20),@xf decimal,@xq int exec p_insert 'C006','操作系统',3.0,6
declare @kc_id char(20),@kc_name char(20),@xf decimal,@xq int exec p_insert 'C007','毛概',11.0,4
四、实验心得
在这次实验中,我明白了,存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度,存储过程一般用来完成数据查询和数据处理操作。
无论什么时候执行存储过程,总要返回一个结果码,用以指示存储过程的执行状态。如果存储过程执行成功,返回的结果码是0;如果存储过程执行失败,返回的结果码一般是一个负数,它和失败的类型有关。我们在创建存储过程时,也可以定义自己的状态码和错误信息。
通过这次实验,让我深刻了解了数据库的功能,觉得它功能非常的强大,掌握存储过程的创建与执行,熟悉存储过程与批处理的区别。掌握带参数的存储过程的创建与执行。
第二篇:数据库原理实验报告
南 京 晓 庄 学 院
《数据库原理与应用》
课程实验报告
实验一 SQL Server 2005常用服务与实用工具实验
所在院(系): 数学与信息技术学院 班级:
学号:
姓名:
1.实验目的
(1)了解Microsoft 关系数据库管理系统SQL Server的发展历史及其特性。(2)了解SQL Server 2005的主要组件、常用服务和系统配置。
(3)掌握Microsoft SQL Server Management Studio 图形环境的基本操作方法。了解使用“SQL Server 2005 联机从书”获取帮助信息的方法;了解“查询编辑器”的使用方法;了解模板的使用方法。
2.实验要求
(1)收集整理Microsoft关系数据库管理系统SQL Server的相关资料,总结其发展历史及SQL Server 2005主要版本类别和主要功能特性。
(2)使用SQL Server配置管理器查看和管理SQL Server 2005服务。
(3)使用Microsoft SQL Server Management Studio连接数据库;使用SQL Server帮助系统获得所感兴趣的相关产品主题/技术文档。
(4)使用Microsoft SQL Server Management Studio“查询编辑器”编辑并执行Transact-SQL查询语句。
(5)查看Microsoft SQL Server 2005模板,了解模板的使用方法。(6)按要求完成实验报告。
3.实验步骤、结果和总结实验步骤/结果
(1)简要总结SQL Server系统发展历史及SQL Server 2005主要版本类别与主要功能特性。
(2)总结SQL Server Management Studio的主要操作方法。
(3)总结查询编辑器的功能和主要操作方法,并举例说明。
(4)总结“模板”的使用方法,并举例说明。
4.实验思考:
查询相关资料,简要描述SQL Server 2005的主要服务。
第三篇:数据库原理实验报告
南 京 晓 庄 学 院
《数据库原理与应用》
课程实验报告
实验二 数据库的创建、管理、备份及还原实验
所在院(系): 数学与信息技术学院 班级:
学号:
姓名:
1.实验目的
(1)掌握分别使用SQL Server Management Studio图形界面和Transact-SQL语句创建和修改数据库的基本方法;
(2)学习使用SQL Server查询分析窗口接收Transact-SQL语句和进行结果分析。
(3)了解SQL Server的数据库备份和恢复机制,掌握SQL Server中数据库备份与还原的方法。
2.实验要求
(1)使用SQL Server Management Studio创建“教学管理”数据库。
(2)使用SQL Server Management Studio修改和删除“教学管理”数据库。(3)使用Transact-SQL语句创建“教学管理”数据库。
(4)使用Transact-SQL语句修改和删除“教学管理”数据库。(5)使用SQL Server Management Studio创建“备份设备”;使用SQL Server Management Studio对数据库“教学管理”进行备份和还原。(6)SQL Server 2005数据库文件的分离与附加。(7)按要求完成实验报告
3.实验步骤、结果和总结实验步骤/结果
(1)总结使用SQL Server Management Studio创建、修改和册除“TM”(教学管理)数据库的过程。
一、使用SQL Server Management Studio创建数据库的步骤如下:
a.在磁盘上新建一个目录,如在C:盘中新建“MyDB“目录
b.在wimdows系统“开始“菜单中,依次选取”程序->Microsoft SQL Server 2005->SQL Management Studio” ,打开SQL Server Management Studio并连接到SQL Server 2005服务。
c.在“对象资源管理器“中单击SQL Server服务器前面的“+”号或直接双击数据库名称,展开该服务器对象资源树形结构,然后右键点击“数据库”文件夹,在弹出的快捷菜单上选择“新建数据库”选项
d.在打开的“新建数据库”对话窗口中输入数据库名称“教学管理”,在该窗口中“数据库文件”设置部分可以修改数据文件和日志文件的文件名、初始大小、保存路径等。
e.单击“确定”按钮,创建“教学管理”数据库。
二、使用SQL Server Management Studio修改和删除“教学管理”数据库
1、使用SQL Server Management Studio图形界面直接修改“教学管理”数据库名为“TM”
2、使用SQL Server Management Studio图形界面查看和修改数据库属性 a.在快捷菜单中选择“属性”项进入
使用
3.使用SQL Server Management Studio图形界面删除数据库 在第一幅图中的快捷菜单中选择“删除”项
(2)总结在实验中为创建、修改和删除“教学管理”数据库所编写的各条T-SQL语句及其完成了什么功能。
1、创建:
CREATE DATABASE 教学管理 ON PRIMARY(Name=JXGL, FileName='C:MyDBJXGL_Data.mdf', Size=3MB, MaxSize=100MB, filegrowth=1MB)LOG ON(Name=JXGL_Log, FileName='C:MyDBJXGL_Log.ldf', Size=1MB, MaxSize=UNLIMITED, FileGrowth=10%);点击执行
2、使用Transact-SQL语句修改和删除“教学管理”数据库
增加数据文件。例如,在数据库“教学管理”中增加数据文件JXGL_EXT,需要在数据库查询编辑器中输入代码:
在增加数据文件之前,要先获得修改权限,即alter database数据库句法,然后再添加数据文件。具体参数也有5项,与创建数据文件相同,在添加数据文件项中,name项是必不可少的。
编写T—SQL语句,删除“教学管理”数据库中的数据文件或日志文件,注意不能删除非空文件。如删除刚添加到数据库中的数据文件“jxgl_ext1” 实例代码如下: ALTER DATABASE 教学管理
REMOVEFILE jxgl_ex1——删除数据库文件时应指定其逻辑名称
SQL语句删除数据库删除了数据库“教学管理” drop database 教学管理
检查所输入SQL语句有无语法错,确认正确后, 按F5键或单击“执行”按钮,这样就删除了数据库“教学管理”。
(3)总结使用SQL Server Management Studio备份与还原数据库的几种方法。
1、创建“备份设备”
2、对数据库“TM”进行备份
1)打开 SQL Server Management Studio,右击需要备份的数据库,从弹出的快捷菜单中依次选择【任务】--【备份】命令,打开【备份数据库】对话框。如下图所示:
(2)在【备份数据库】对话框的【常规】页面中根据需要选择需要备份的【数据库】,在本示例选择备份数据库.接下来还可以选择【备份类型】、备份集的名称等相关参数。默认情况下,备份操作会所数据库中的数据备份到 SQL SERVER 数据库的默认工作目录
(3)切换【备份数据库】对话框中的【选项】页面。在此页面中,可以根据需要进行相应的设置。例如,可以根据需要将现有数据备分到现有的备份集中,也可使用数据库中的当前数据覆盖现有的备份集。除此之外。还可以设置备份操作的可靠性选项。
单击【确定】按钮,即可执行备份操作。一旦备份操作结束。SQL SERVER 数据库系统将弹出名为 Microsoft SQL Server Management Studio 的对话框,提示备份已成功完成。
3、使用“TM”数据库完整备份还原数据库到备份完成时点的数据库状态 通过 SQL Server Management Studio 还原数据库
使用 SQL Server Management Studio 进行数据还原操作的步骤如下所示:
(1)右击【数据库】节点,从弹出的快捷菜单中选择【还原数据库】命令,打开【还原数据库】对话框,如下图所示:
在[还原数据库]对话框中的[常规]页面中,选择[目标]下拉列框中的[源数据库]选项。
[选择用于还原的备份集]列表框中将显示用于还原TM数据库的可用备份集,备份集,且[目标数据库]将会被同时设置为TM
在“还原数据库”的窗口中选择“选项”页,在“还原选项”选项区域中选择“覆盖现有数据库”复选框,单击确定。还原操作完成后,打开“TM”数据库,可以看到TM数据库已进行还原
4.实验思考:
①SQL Server 2005物理数据库包含了哪能几种类型的文件以及它们的作用? SQL Server2005数据库具有三种类型的文件:
主数据文件
主数据文件是数据库的起点,指向数据库中的其他文件。每个数据库都有一个主数据文件。主数据文件的推荐文件扩展名是.mdf。它将数据存储在表和索引中,包含数据库的启动信息,还包括一些系统表,这些表记载数据库对象及其他文件的位置信息。
次要数据文件
除主数据文件之外的所有其他数据文件都是次要数据文件。某些数据库可能不含有任何次要数据文件。次要数据文件的推荐文件扩展名是.ndf。
日志文件
SQL Server具有事物功能,日志文件包含着用于恢复数据库的所有日志信息。每个数据库必须至少有一个日志文件,当然也可以有多个,建立数据库时,SQL Server会自动建立数据库的日志文件。日志文件的推荐文件扩展名是.ldf。②数据库备份与转储包含那些原理?
备份(backup)实际就是数据的副本,备份的目的是为了防止不可预料的数据丢 失和应用错误。
转储(restore)是指当数据文件或控制文件出现损坏时,将已备份的副本文件还原到原数据库的过程
数据库转存实现热备份恢复功能。通过修改初始化文件里的路径,实现转存。启 动到MOUNT状态下,将所有数据文件和日志文件通过ALTER DATABASE RENAME FILE '原始路径/名称' TO '当前路径/名称';然后将数据库打开,重建TEMP tablespace即可。数据转储是数据库恢复中采用的基本技术。
所谓转储即dba定期地将数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态。静态转储:在系统中无运行事务时进行的转储操作。静态转储简单,但必须等待 正运行的用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。显然,这会降低数据库的可用性。动态转储:指转储期间允许对数据库进行存取或修改。动态转储可克服静态 转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正确有效。因为转储期间运行的 事务可能修改了某些数据,使得后援副本上的数据不是数据库的一致版本。为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件(log file)。这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。转储还可以分为海量转储和增量转储两种方式。海量转储是指每次转储全部数据库。
增量转储则指每次只转储上一次转储后更新过的数据。
从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。但如 果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。
③如果数据或日志文件非空不能删除,查找SQL Server中缩小文件大小的方法。
在SQL Server中,所有对数据库执行的更新操作都会记录在数据库的事务日志文件中,除非将数据库设为可自动收缩的或手动的对数据库进行了收缩,否则事务日志文件将一直增长,直到达到事先设定的日志文件增长上限或用尽所有可用的磁盘空间。如果当前的数据库文件或日志文件过大,可以使用以下两个命令对其进行收缩: DBCC SHRINKDATABASE:收缩指定数据库的所有数据和日志文件的大小 DBCC SHRINKFILE:收缩数据库的某个指定数据或日志文件的大小
这两个命令可以释放数据库中的空闲空间,并将数据库或指定的数据库文件收缩到指定的大小,但收缩后的数据文件或日志文件的大小不会小于文件中现存的有效数据所占空间的大小。在使用以上命令收缩日志文件的时候需要注意,已写入数据库但未被截断的事务日志记录是 不会被收缩的,因为虽然这部分日志记录的信息已经写入数据库文件,但在使用事务日志备份进行数据库还 原的时候,还将用到其中的信息。
对于使用简单恢复模型的数据库,事务日志会在每次处理检查点(CheckPoint)时自动被截 断。
对于使用完全恢复模型或大容量日志记录恢复模型的数据库,事务日志只有在执行日志备份(BACKUP LOG)时才会被截断,这时事务日志中记录的信息被写入事务日志备份文件,而它们所占用的这部分空间被标记为可用(即被截断)。
截断事务日志并不会使日志文件变小,但可以将其中的部分空间释放供以后写入新的日志记录使用。若要减少日志文件的物理大小,则要使用上面提到的
在执行BACKUP LOG语句的时候,还可以使用WITH NO_LOG(或WITH TRUNCATE_ONLY,含 义相同)参数,这时并不真正备份事务日志,而只是截断事务日志中的非活动部分
(这和普通的BACKUP LOG语句作用相同)。这适合于剩余磁盘空间不够进行事务日志备份或不打算保 留事务日志中的非活动部分用于数据库恢复的情况。避免事务日志文件增长过快以致用尽所有磁盘空间的现象发生
一种办法是将数据库设为使用简单恢复模型,这样可以使SQL Server周期性的自动截断事务日志的
非活动部分,并回收其占用的空间供以后写入事务日志记录使用。但这将使数据库无法利用事务日志备份还原到即时点,降低了数据库的可靠性,因此一般不应用于生产型数据库。对于生产型数据库,推荐的做法是使用完全恢复模型,并定期进行数据库的完全备份和事务日志备份。例 如每周执行一次完全备份,每天执行一次事务日志备份,这可以通过SQL Server企业管理器中的数据库 维护计划向导很方便的实现(一般可以设为在每天夜里业务不繁忙的某个时刻自动执行备份)。
通过定期执行数据库的事务日志备份,可以避免日志文件的迅速增大,而使其保持一个比较稳定的大小。
虽然数据库备份文件也会占用很多磁盘空间,但随时可以将这些文件移到其他磁盘上或在不需要它们的时候将其删除,而且可以在出现故障或误操作的时候方便的进行数据库的还原。
由于数据文件的大小是随数据库中数据量的增长而增长的,数据库中已删除的数据所占的空间可以供新插 入的数据使用;而在定期执行了事务日志的备份后,我们可以将日志文件的大小控制在一个比较合理的范 围。因此,一般不需要对数据库进行收缩,也不推荐将数据库设为自动收缩模式。
减小事务日志文件大小的
首先在该数据库中执行CHECKPOINT命令,然后将该数据库分离(Detach),再将与其对应的数据库日志 文件(.ldf文件)改名或删除或移动到其他目录下,然后执行sp_attach_single_file_db存储过程或在企业管 理器中重新将其附加(Attach)。由于找不到原来的日志文件,SQL Server将自动为该数据库建立一个大 小只有504K的日志文件。但这种方法必须暂时将数据库脱机,因此一般不适宜在生产环境中使用。
1、建议首先备份数据库(但不是必需的):
BACKUP DATABASE database_name TO backup_device
2、备份事务日志:
BACKUP LOG database_name TO backup_device 如果不需要当前事务日志中的记录进行数据库还原或没有足够的空间进行事务日志备份的 的话,也可仅执行以下命令截断事务日志: BACKUP LOG database_name WITH NO_LOG
3、收缩事务日志文件:
DBCC SHRINKFILE(log_file_name)其中log_file_name是事务日志文件的逻辑名称,可以在企业管理器中数据库属性的“事务 日志”页中看到(如Northwind数据库的默认事务日志文件逻辑名称为Northwind_log)。
4、如果日志文件仍然较大的话,可以尝试重复执行一次 BACKUP LOG WITH NO_LOG和DBCC SHRINKFILE命令。
5、如果这时仍没有明显的效果,请执行DBCC OPENTRAN(database_name)检查当前数据库中是否存在长时间未提交的活动事务。有必要的话,可以断开这些连接并重新尝试截断事务日志和收缩日志文件。
6、事务日志文件收缩完成后,建议立即执行一次数据库的完全备份并根据实际需要制定适当的数据库备份计划。④思考后续实验过程中,你计划采用哪种方法备份自己的数据库实验操作结果?并说明为什么采用该方法。
答:数据库备份有四种类型
完全备份 事务日志备份 差异备份
文件备份 采用完全备份
完全备份就是指对某一个时间点上的所有数据(包含用户表、系统表、索引、视图和存储过程等所有数据库对象)或应用进行的一个完全拷贝。
实际应用中就是用一盘磁带对整个系统进行完全备份,包括其中的系统和所有数据。
这种备份方式最大的好处就是只要用一盘磁带,就可以恢复丢失的数据。因此大大加快了系统或数据的恢复时间。
第四篇:上海应用技术学院实验报告(数据库原理及应用)参考
上海应用技术学院
《数据库原理及应用》课程实验报告
计算机科学与信息工程系·2007年编制
计算机科学与信息工程系·2007年编制
注:空间不够,可以增加页码。计算机科学与信息工程系·2007年编制
第五篇:数据库原理上机实验报告
广西科技大学理学院《数据库原理》上机实验报告
实验序号与实验名称:实验九:用户管理和权限管理
姓名:薛亚妮学号:201000901045
专业班级:信计101实验日期:2012年 12月15日
一、实验目的:理解和体会数据库安全性的内容,加强对DBMS功能的认识。
二、实验内容:数据库的用户管理和操作权限管理。
三、程序源代码:
1、对象操作授权
sp_grantdbaccess 201000901035
grant select on 产品1045 to 201000901035
grant create view,create table to 201000901035
grant execute on sp_getgoods to 2010009010352、在授权过程中体会GRANT命令中WITH GRANT OPTION 短语的作用。
--用户201000901045--
grant select on产品1045 to [201000901035] WITH GRANT OPTION
--用户201000901035--
grant select on 产品1045 to [201000901035]
As [201000901035]
3、分情况收回授权,并体会REVOKE命令中GRANT OPTION FOR和CASCADE
--短语的作用
revoke select on 产品1045 from 201000901035
revoke create view,create table to 201000901035
revoke grant option for select on 产品1045 from 201000901035 CASCADE
四、实验结果分析与总结
安全性控制是数据库管理员(或系统管理员)的一个重要任务,他要充分利用数据库管理系统的安全功能,保证数据库和数据库中数据的安全。
授权登录用户为当前数据库用户 :
sp_grantdbaccess [@loginame =] login
[,[@name_in_db =] name_in_db]
使一个登录用户成为数据库用户只是授权的第一步,数据库管理员可以进一步为能够连接到自己所管理数据库的用户在该数据库上授予所需要的权限.收回权限:收回语句授权 :REVOKE { ALL | statement_list } FROM name_list
收回对象授权 :
REVOKE [GRANT OPTION FOR]
{ ALL [ PRIVILEGES ] | permission_list }
{[(column_list)] ON { table | view } | ON { table | view } [(column_list)]
| ON stored_procedure| ON user_defined_function }
FROM name_list
[ CASCADE ]
[ AS { group | role } ]
禁止语句权限: DENY { ALL | statement_list } TO name_list
禁止对象权限: DENY { ALL [ PRIVILEGES ] | permission_list }
{[(column_list)] ON { table | view } | ON { table | view } [(column_list)]
| ON stored_procedure| ON user_defined_function }
TO name_list
[CASCADE]