数据控制语言 DCL

数据控制语言 DCL

ID:42669060

大小:17.94 KB

页数:5页

时间:2019-09-19

数据控制语言  DCL_第1页
数据控制语言  DCL_第2页
数据控制语言  DCL_第3页
数据控制语言  DCL_第4页
数据控制语言  DCL_第5页
资源描述:

《数据控制语言 DCL》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、三、DCL—数据控制语言1、权限与角色在SQLSERVER中,权限可分为系统权限和对象权限。系统权限由数据库管理员授予其他用户,是指数据库用户能够对数据库系统进行某种特定的操作的权力。创建一个基本表(CREATETABLE)对象权限由创建基本表、视图等数据库对象的用户授予其他用户,是指数据库用户在指定的数据库对象上进行某种特定的操作的权力。如查询(SELECT)、插入(INSERT)、修改(UPDATE)和删除(DELETE)等操作。角色是多种权限的集合,可以把角色授予用户或其他角色。当要为某一用户同时授予或收回多项权限时,则可以把这些权限定义为一个角色,对此角色进行操作。

2、这样就避免了许多重复性的工作,简化了管理数据库用户权限的工作。 2、系统权限与角色的授予SQL语言使用GRANT语句为用户授予系统权限,其语法格式为:GRANT<系统权限>

3、<角色>[,<系统权限>

4、<角色>]…TO<用户名>

5、<角色>

6、PUBLIC[,<用户名>

7、<角色>]…[WITHADMINOPTION]其语义为:将指定的系统权限授予指定的用户或角色。其中:PULBIC代表数据库中的全部用户。WITHADMINOPTION为可选项,指定后则允许被授权的用户将指定的系统特权或角色再授予其他用户或角色。例1:为用户张三授予CREATETABLE的系统权限。GRANTCRE

8、ATETABLETO张三 3、系统权限与角色的收回数据库管理员可以使用REVOKE语句收回系统权限,其语法格式为:REVOKE<系统权限>

9、<角色>[,<系统权限>

10、<角色>]…FROM<用户名>

11、<角色>

12、PUBLIC[,<用户名>

13、<角色>]…例2:收回用户张三所拥有的CREATETABLE的系统权限。REVOKECREATETABLEFROM张三 4、对象权限与角色的授予SQL语言使用GRANT语句为用户授予对象权限,其语法格式为:GRANTALL

14、<对象权限>[(列名[,列名]…)][,<对象权限>]…ON<对象名>TO<用户名>

15、<角色>

16、PUBLIC[,<用户名

17、>

18、<角色>]…[WITHGRANTOPTION]其语义为:将指定的操作对象的对象权限授予指定的用户或角色。其中:ALL代表所有的对象权限。列名用于指定要授权的数据库对象的一列或多列。如果不指定列名,被授权的用户将在数据库对象的所有列上均拥有指定的特权。实际上,只有当授予INSERT、UPDATE权限时才需指定列名。ON子句用于指定要授予对象权限的数据库对象名,可以是基本表名、视图名等。WITHADMINOPTION为可选项,指定后则允许被授权的用户将权限再授予其他用户或角色。例3:将对Sc表和student表的所有对象权限授予USER1和USER2。GRANTALLONS

19、c,studentTOUSER1,USER2 例4:将对Course表的查询权限授予所有用户。GRANTSELECTONCourseTOPUBLIC 例5:将查询student表和修改学生年龄的权限授予USER3,并允许将此权限授予其他用户。GRANTSELECT,UPDATE(PROF)ONstudentTTOUSER3WITHADMINOPTIONUSER3具有此对象权限,并可使用GRANT命令给其他用户授权,如下例,USER3将此权限授予USER4:GRANTSELECT,UPDATE(年龄)ONstudentTOUSER4 5、对象权限与角色的回收所有授予出去的权力

20、在必要时都可以由数据库管理员和授权者收回,收回对象权限仍然使用REVOKE语句,其语法格式为:REVOKE<对象权限>

21、<角色>[,<对象权限>

22、<角色>]…FROM<用户名>

23、<角色>

24、PUBLIC[,<用户名>

25、<角色>]…例6:收回用户USER1对Course表的查询权限。REVOKESELECTONCFROMUSER1 1、说明:复制表(只复制结构,源表名:a新表名:b)(Access可用)法一:select*intobfromawhere1<>1法二:selecttop0*intobfroma2、说明:拷贝表(拷贝数据,源表名:a目标表名:b)(Access可用)

26、insertintob(a,b,c)selectd,e,ffromb;3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径)(Access可用)insertintob(a,b,c)selectd,e,ffrombin‘具体数据库’where条件例子:..frombin'"&Server.MapPath(".")&"/data.mdb"&"'where..4、说明:两张关联表,删除主表中已经在副表中没有的信息  deletefromtable1wherenotexists(select*fromtable2where

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。