资源描述:
《SQL授予用户权限地语句.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、插入多行数据的语法格式为:INSERTINTOtable_or_view[(column_list)]子查询例3-7求出各位学生的平均成绩,把结果存放在新表AVGSCORE中。程序清单如下:/*首先建立新表AVGSCORE,用来存放学号和学生的平均成绩。*/CREATETABLEAVGSCORE(SNOCHAR(10),AVGSCORESMALLINT)Go/*利用子查询求出SC表中各位学生的平均成绩,把结果存放在新表AVGSCORE中。*/INSERTINTOAVGSCORESELECTSNO,AVG(SCORE)FROM
2、SCGROUPBYSNO•例3-12创建把讲授C5课程的教师的工资增加100元。程序清单如下:/*T表(教师基本情况表)的结构为T(TNO,TN,SEX,AGE,PROF,SAL,DEPT)分别表示教师的编号,,性别,年龄,职称,工资,系别。TC表(教师授课表)的结构为TC(TNO,CNO)分别表示教师的编号,课程编号。*/UPDATETSETSAL=SAL+100WHERETNOIN(SELECTT.TNOFROMT,TCWHERET.TNO=TC.TNOANDTC.CNO='C5')/*通过连接查询找到讲授C5课程的教师
3、编号。*/•下面是删除一行记录的例子。例3-14删除益琳教师的记录。程序清单如下:DELETEFROMTWHERETN=’益琳’•例3-16删除明同学选课的记录。DELETEFROMSCWHERESNO=(SELECTSNOFROMSWHERESN=’明’)三、数据控制语言•数据控制语言(DCL)是用来设置或更改数据库用户或角色权限的语句,包括GRANT,DENY,REVOKE等语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行数据控制语言。3.
4、1语句权限与角色的授予•SQL语言使用GRANT语句为用户授予语句权限的语法格式为:GRANT<语句权限>
5、<角色>[,<语句权限>
6、<角色>]…TO<用户名>
7、<角色>
8、PUBLIC[,<用户名>
9、<角色>]…[WITHADMINOPTION]•其语义为:将指定的语句权限授予指定的用户或角色。其中:(1)PULBIC代表数据库中的全部用户;(2)WITHADMINOPTION为可选项,指定后则允许被授权的用户将指定的系统特权或角色再授予其他用户或角色。•例3-17 给用户Mary和John以及WindowsNT组Corpo
10、rateBobJ授予多个语句权限。程序清单如下:GRANTCREATEDATABASE,CREATETABLETOMary,John,[CorporateBobJ]•例3-18为用户ZhangYiLin授予CREATETABLE的语句权限。程序清单如下:GRANTCREATETABLETOZhangYiLin•同语句权限的授予类似,SQL语言使用GRANT语句为用户授予对象权限,其语法格式为:GRANTALL
11、<对象权限>[(列名[,列名]…)][,<对象权限>]…ON<对象名>TO<用户名>
12、<角色>
13、PUBLIC[,
14、<用户名>
15、<角色>]…[WITHADMINOPTION]•其语义为:将指定的操作对象的对象权限授予指定的用户或角色。其中:(1)ALL代表所有的对象权限。(2)列名用于指定要授权的数据库对象的一列或多列。如果不指定列名,被授权的用户将在数据库对象的所有列上均拥有指定的特权。实际上,只有当授予INSERT、UPDATE权限时才需指定列名。(3)ON子句用于指定要授予对象权限的数据库对象名,可以是基本表名、视图名等。(4)WITHADMINOPTION为可选项,指定后则允许被授权的用户将权限再授予其他用户或角色。•例3-19
16、在权限层次中授予对象权限。首先,给所有用户授予SELECT权限,然后,将特定的权限授予用户Mary,John和Tom。程序清单如下:GRANTSELECTONsTOpublicGOGRANTINSERT,UPDATE,DELETEONsTOMary,John,TomGO•例3-20将查询T表和修改教师职称的权限授予USER3,并允许将此权限授予其他用户。程序清单如下:GRANTSELECT,UPDATE(PROF)ONTTOUSER3WITHADMINOPTION•上例中,USER3具有此对象权限,并可使用GRANT命令给其
17、他用户授权,如下例,USER3将此权限授予USER4:GRANTSELECT,UPDATE(PROF)ONTTOUSER4数据库管理员可以使用REVOKE语句收回语句权限,其语法格式为:REVOKE<语句权限>
18、<角色>[,<语句权限>
19、<角色>]…FROM<用户名>
20、<角色>
21、PUBLI